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 相关文章推荐
人大复印资料处理程序_查询篇
Oct 09 PHP
在PHP3中实现SESSION的功能(三)
Oct 09 PHP
php empty,isset,is_null判断比较(差异与异同)
Oct 19 PHP
解析PHP高效率写法(详解原因)
Jun 20 PHP
php+mysql大量用户登录解决方案分析
Dec 29 PHP
PHP实现通用alert函数的方法
Mar 11 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
PHP响应post请求上传文件的方法
Dec 17 PHP
PHP创建/删除/复制文件夹、文件
May 03 PHP
PHP实现对xml的增删改查操作案例分析
May 19 PHP
laravel migrate初学常见错误的解决方法
Oct 11 PHP
什么是PHP7中的孤儿进程与僵尸进程
Apr 14 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互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
2018/04/12 PHP
PHP PDO数据库操作预处理与注意事项
2019/03/16 PHP
PHP网站常见安全漏洞,及相应防范措施总结
2021/03/01 PHP
一些常用的Javascript函数
2006/12/22 Javascript
Js实现滚动变色的文字效果
2014/06/16 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
2014/06/26 Javascript
使用jQuery给input标签设置默认值
2016/06/20 Javascript
Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面
2016/07/01 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
js 定位到某个锚点的方法
2016/11/19 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
Angular2 Service实现简单音乐播放器服务
2017/02/24 Javascript
three.js实现圆柱体
2018/12/30 Javascript
es6 symbol的实现方法示例
2019/04/02 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
Python的CGIHTTPServer交互实现详解
2018/02/08 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
2018/04/27 Python
修复 Django migration 时遇到的问题解决
2018/06/14 Python
Django实现学员管理系统
2019/02/26 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
机器学习实战之knn算法pandas
2019/06/22 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
2019/08/31 Python
Django-xadmin+rule对象级权限的实现方式
2020/03/30 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
2013/06/06 HTML / CSS
借助HTML5 Canvas API制作一个简单的猜字游戏
2016/03/25 HTML / CSS
前台文员个人求职信范文
2014/01/05 职场文书
出国考察邀请函
2014/01/21 职场文书
护士求职信范文
2014/05/24 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
2014年小学教研工作总结
2014/12/06 职场文书