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 header示例代码(推荐)
Sep 08 PHP
关于IIS php调用com组件的权限问题
Jan 11 PHP
解析如何修改phpmyadmin中的默认登陆超时时间
Jun 25 PHP
php/js获取客户端mac地址的实现代码
Jul 08 PHP
PHP字符串word末字符实现大小写互换的方法
Nov 10 PHP
php文件缓存类汇总
Nov 21 PHP
PHP实现微信网页授权开发教程
Jan 19 PHP
php结合ajax实现手机发红包的案例
Oct 13 PHP
thinkPHP框架实现的无限回复评论功能示例
Jun 09 PHP
Ajax请求PHP后台接口返回信息的实例代码
Aug 21 PHP
PHP PDOStatement::debugDumpParams讲解
Jan 30 PHP
laravel通用化的CURD的实现
Dec 13 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
syphon 虹吸式咖啡冲泡冲煮倒水的得与失
2021/03/03 冲泡冲煮
PHP中遍历stdclass object的实现代码
2011/06/09 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
2012/03/01 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
Jquery结合HTML5实现文件上传
2015/06/25 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
2015/06/26 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
浅谈js中对象的使用
2016/08/11 Javascript
详解滑动穿透(锁body)终极探索
2019/04/16 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
js刷新页面location.reload()用法详解
2019/12/09 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
2020/06/22 Javascript
Javascript如何递归遍历本地文件夹
2020/08/06 Javascript
Python中使用Flask、MongoDB搭建简易图片服务器
2015/02/04 Python
浅谈python 四种数值类型(int,long,float,complex)
2016/06/08 Python
Python读取YAML文件过程详解
2019/12/30 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
Python数据可视化常用4大绘图库原理详解
2020/10/23 Python
Under Armour安德玛英国官网:美国高端运动科技品牌
2018/09/17 全球购物
店长岗位的工作内容
2013/11/12 职场文书
班组长安全生产职责
2013/12/16 职场文书
英语感恩演讲稿
2014/01/14 职场文书
小学校园活动策划
2014/01/30 职场文书
董事长秘书职责
2014/01/31 职场文书
实习老师离校感言
2014/02/03 职场文书
办公室秘书岗位职责范本
2014/02/11 职场文书
高考标语大全
2014/06/05 职场文书
团队口号大全
2014/06/06 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
2015年度员工自我评价范文
2015/03/11 职场文书
HTML页面滚动时部分内容位置固定不滚动的实现
2021/04/14 HTML / CSS
Mysql中一千万条数据怎么快速查询
2021/12/06 MySQL
Python时间操作之pytz模块使用详解
2022/06/14 Python