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 相关文章推荐
实用函数7
Nov 08 PHP
PHP 八种基本的数据类型小结
Jun 01 PHP
PHP连接Access数据库的方法小结
Jun 20 PHP
PHP页面实现定时跳转的方法
Oct 31 PHP
php中使用url传递数组的方法
Feb 11 PHP
PHP 使用memcached简单示例分享
Mar 05 PHP
PHP实现HTML页面静态化的方法
Nov 04 PHP
php邮箱地址正则表达式验证
Nov 13 PHP
微信公众号开发之文本消息自动回复php代码
Aug 08 PHP
PHP二维数组去重算法
Dec 17 PHP
PHP面向对象程序设计OOP继承用法入门示例
Dec 27 PHP
php实现用户注册密码的crypt加密
Jun 08 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
基于文本的留言簿
2006/10/09 PHP
如何在smarty中增加类似foreach的功能自动加载数据
2013/06/26 PHP
discuz加密解密函数使用方法和中文注释
2014/01/21 PHP
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
PHP文件读取功能的应用实例
2015/05/08 PHP
php+jquery+html实现点击不刷新加载更多的实例代码
2016/08/12 PHP
laravel 5.3中自定义加密服务的方案详解
2017/05/09 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
js 效率组装字符串 StringBuffer
2009/12/23 Javascript
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
Vue过滤器的用法和自定义过滤器使用
2017/02/08 Javascript
AngularJS实现的JSONP跨域访问数据传输功能详解
2017/07/20 Javascript
vue中父子组件注意事项,传值及slot应用技巧
2018/05/09 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
Python实现TCP协议下的端口映射功能的脚本程序示例
2016/06/14 Python
Fabric 应用案例
2016/08/28 Python
django+js+ajax实现刷新页面的方法
2017/05/22 Python
Python3实现从排序数组中删除重复项算法分析
2019/04/03 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
2020/02/12 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
css 省略号 css3让多余的字符串消失并附加省略号的实现代码
2013/02/07 HTML / CSS
飞利浦比利时官方网站:Philips比利时
2016/08/24 全球购物
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
合作投资意向书
2014/04/01 职场文书
2014年林业工作总结
2014/12/05 职场文书
2016年世界艾滋病日宣传活动总结
2016/04/01 职场文书
keepalived + nginx 实现高可用方案
2022/12/24 Servers