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边学边教》(04.编写简易的通讯录――视频教程1)
Dec 13 PHP
php 在线打包_支持子目录
Jun 28 PHP
PHP 八种基本的数据类型小结
Jun 01 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
Sep 23 PHP
PHP设置一边执行一边输出结果的代码
Sep 30 PHP
destoon实现商铺管理主页设置增加新菜单的方法
Jun 26 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
Sep 22 PHP
php生成动态验证码gif图片
Oct 19 PHP
PHP如何实现跨域
May 30 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
php+redis消息队列实现抢购功能
Feb 08 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 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
php eval函数用法总结
2012/10/31 PHP
使用PHP下载CSS文件中的图片的代码
2013/09/24 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
2016/11/10 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
在网页中控制wmplayer播放器
2006/07/01 Javascript
用htc组件制作windows选项卡
2007/01/13 Javascript
javascript 常用代码技巧大收集
2009/02/25 Javascript
document.onreadystatechange事件的用法分析
2009/10/17 Javascript
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
js实现在字符串中提取数字
2013/11/05 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
2013/11/08 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
jQuery检测返回值的数据类型
2015/07/13 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
2017/10/11 Javascript
JS实现小球的弹性碰撞效果
2017/11/11 Javascript
一个计算身份证号码校验位的Python小程序
2014/08/15 Python
详解python实现数据归一化处理的方式:(0,1)标准化
2019/07/17 Python
pygame实现俄罗斯方块游戏(基础篇2)
2019/10/29 Python
意大利珠宝店:Luxury Zone
2019/01/05 全球购物
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
恒华伟业笔试面试题
2015/02/26 面试题
技校生自我鉴定范文
2013/09/26 职场文书
文秘专业自荐信
2013/10/14 职场文书
高二化学教学反思
2014/01/30 职场文书
英语课外活动总结
2014/08/27 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
倡议书格式及范文
2015/04/29 职场文书
叶问观后感
2015/06/15 职场文书
创业计划书之青年旅馆
2019/09/23 职场文书
导游词之沈阳植物园
2019/11/30 职场文书
什么是css原子化,有什么用?
2022/04/24 HTML / CSS
解决 redis 无法远程连接
2022/05/15 Redis