ThinkPHP框架中使用Memcached缓存数据的方法


Posted in PHP onMarch 31, 2018

本文实例讲述了ThinkPHP框架中使用Memcached缓存数据的方法。分享给大家供大家参考,具体如下:

ThinkPHP默认使用文件缓存数据,支持Memcache等其他缓存方式,有两个PHP扩展:Memcache和Memcached,Memcahe官方有说明,主要说一下Memcached。

相对于PHP Memcache,php Memcached是基于原生的c的libmemcached的扩展,更加完善,建议替换为php memcached。

版本3.2.2开始内置了Memcached驱动(ThinkPHP/Library/Think/Cache/Driver/Memcached.class.php),但是文档中并没有说明用法,通过查看源码配置并测试成功。

有个bug至今未修复,就是过期时间为0的问题,理论上应该是永久缓存,但是驱动中未做处理,会马上过期,set方法修改如下

public function set($name, $value, $expire = null) {
  N('cache_write',1);
  if(is_null($expire)) {
   $expire = $this->options['expire'];
  }
  $name = $this->options['prefix'].$name;
  if (empty($expire))
   $time = 0;
  else
   $time = time() + $expire;
  if($this->handler->set($name, $value, $time)) {
   if($this->options['length']>0) {
    // 记录缓存队列
    $this->queue($name);
   }
   return true;
  }
  return false;
 }

在配置文件config.php中添加

//缓存配置
 'DATA_CACHE_TYPE' => 'Memcached',
 'MEMCACHED_SERVER' => array(
  array('127.0.0.1', 11211, 0)
 ),

驱动中是调用:

Memcached::addServers(array)

可以添加多个缓存服务器

还有一个配置项是 MEMCACHED_LIB,调用的是:

Memcached::setOptions(array)

具体选项可参考PHP中文手册

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
利用PHP和AJAX创建RSS聚合器的代码
Mar 13 PHP
PHP 得到根目录的 __FILE__ 常量
Jul 23 PHP
PHP在引号前面添加反斜杠(PHP去除反斜杠)
Sep 28 PHP
php分页函数示例代码分享
Feb 24 PHP
PHP中怎样防止SQL注入分析
Oct 23 PHP
php中strtotime函数用法详解
Nov 15 PHP
分享一段PHP制作的中文拼音首字母工具类
Dec 11 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 PHP
使用正则去除php代码中的注释方法
Nov 03 PHP
php 解决扫描二维码下载跳转问题
Jan 13 PHP
thinkPHP5 ACL用户权限模块用法详解
May 10 PHP
Laravel接收前端ajax传来的数据的实例代码
Jul 20 PHP
PHPTree――php快速生成无限级分类
Mar 30 #PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
Mar 30 #PHP
PHP实现动态删除XML数据的方法示例
Mar 30 #PHP
PHP实现动态添加XML中数据的方法
Mar 30 #PHP
PHP实现动态创建XML文档的方法
Mar 30 #PHP
php实现微信模板消息推送
Mar 30 #PHP
Mac系统下安装PHP Xdebug
Mar 30 #PHP
You might like
全国FM电台频率大全 - 17 湖北省
2020/03/11 无线电
php将数据库中的电话号码读取出来并生成图片
2008/08/31 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
2013/11/13 PHP
PHP消息队列用法实例分析
2016/02/12 PHP
PHP常用header头定义代码示例汇总
2020/08/29 PHP
关于JavaScript的一些看法
2009/05/27 Javascript
jQeury淡入淡出需要注意的问题
2010/09/08 Javascript
js各种验证文本框输入格式(正则表达式)
2010/10/22 Javascript
使用Jquery实现点击文字后变成文本框且可修改
2013/09/21 Javascript
angularjs学习笔记之完整的项目结构
2015/09/26 Javascript
JavaScript解八皇后问题的方法总结
2016/06/12 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
Nodejs进阶:基于express+multer的文件上传实例
2016/11/21 NodeJs
详解Html a标签中href和onclick用法、区别、优先级别
2017/01/16 Javascript
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
2017/03/08 Javascript
详解vuejs几种不同组件(页面)间传值的方式
2017/06/01 Javascript
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
对angularjs框架下controller间的传值方法详解
2018/10/08 Javascript
angular 未登录状态拦截路由跳转的方法
2018/10/09 Javascript
React手稿之 React-Saga的详解
2018/11/12 Javascript
JavaScript继承的特性与实践应用深入详解
2018/12/30 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
Flexible.js可伸缩布局实现方法详解
2020/11/13 Javascript
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
[00:52]DOTA2第二届亚洲邀请赛预选赛宣传片
2017/01/13 DOTA
python获取指定时间差的时间实例详解
2017/04/11 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
用python脚本24小时刷浏览器的访问量方法
2018/12/07 Python
对python打乱数据集中X,y标签对的方法详解
2018/12/14 Python
Pycharm连接远程服务器过程图解
2020/04/30 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
印尼最大的网上书店:Gramedia.com
2018/09/13 全球购物
小学三八妇女节活动方案
2014/03/16 职场文书
家长意见书
2015/06/04 职场文书