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新手谈谈我的学习心得
Feb 25 PHP
常用的php ADODB使用方法集锦
Mar 25 PHP
五个PHP程序员工具
May 26 PHP
PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
Apr 28 PHP
xml在joomla表单中的应用详解分享
Jul 19 PHP
ini_set的用法介绍
Jan 07 PHP
php几个预定义变量$_SERVER用法小结
Nov 07 PHP
php打包压缩文件之ZipArchive方法用法分析
Apr 30 PHP
PHP入门教程之图像处理技巧分析
Sep 11 PHP
PHP封装的完整分页类示例
Aug 21 PHP
PHP解析url并得到url参数方法总结
Oct 11 PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
Apr 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读取mssql json数据中文乱码的解决办法
2016/04/11 PHP
Thinkphp框架开发移动端接口(1)
2016/08/18 PHP
Laravel修改验证提示信息为中文的示例
2019/10/23 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
基于jquery的一个简单的脚本验证插件
2010/04/05 Javascript
node.js WEB开发中图片验证码的实现方法
2014/06/03 Javascript
node.js中的http.request方法使用说明
2014/12/14 Javascript
详解AngularJS控制器的使用
2016/03/09 Javascript
jQuery获取cookie值及删除cookie用法实例
2016/04/15 Javascript
Bootstrap3.0建站教程(一)之bootstrap表单元素排版
2016/06/01 Javascript
浅谈javascript中new操作符的原理
2016/06/07 Javascript
Node.js 8 中的重要新特性
2017/06/28 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
vue做移动端适配最佳解决方案(亲测有效)
2018/09/04 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
2019/08/28 Javascript
JavaScript Window窗口对象属性和使用方法
2020/01/19 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
python删除列表内容
2015/08/04 Python
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
python计算两个数的百分比方法
2018/06/29 Python
利用python将图片版PDF转文字版PDF
2019/05/03 Python
python或C++读取指定文件夹下的所有图片
2019/08/31 Python
python字符串,元组,列表,字典互转代码实例详解
2020/02/14 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
2020/04/16 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
2020/06/30 Python
美国翻新电子产品商店:The Store
2019/10/08 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
小学教师师德反思
2014/02/03 职场文书
解除合同协议书
2014/04/17 职场文书
《明天,我们毕业》教学反思
2014/04/24 职场文书
宣传普通话标语
2014/06/27 职场文书
承诺函范文
2015/01/21 职场文书
学校会议通知范文
2015/04/15 职场文书
母亲节感言
2015/08/03 职场文书
javascript数组includes、reduce的基本使用
2021/07/02 Javascript