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 相关文章推荐
PHP4中实现动态代理
Oct 09 PHP
PHP 读取和修改大文件的某行内容的代码
Oct 30 PHP
discuz加密解密函数使用方法和中文注释
Jan 21 PHP
PHP自动重命名文件实现方法
Nov 04 PHP
Yii学习总结之数据访问对象 (DAO)
Feb 22 PHP
Zend Framework连接Mysql数据库实例分析
Mar 19 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
Jul 01 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
Aug 20 PHP
Laravel事件监听器用法实例分析
Mar 12 PHP
PHP开发实现快递查询功能详解
Apr 08 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
Mar 26 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 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使用DES进行加密与解密的方法详解
2013/06/06 PHP
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
laravel安装zend opcache加速器教程
2015/03/02 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
2015/12/21 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
Smarty保留变量用法分析
2016/05/23 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
2017/06/09 PHP
PHP实现一个多功能购物网站的案例
2017/09/13 PHP
PHPstorm激活码2020年5月13日亲测有效
2020/09/17 PHP
js单例模式详解实例
2013/11/21 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
JavaScript学习笔记之数组去重
2016/03/23 Javascript
jQuery实现两个select控件的互移操作
2016/12/22 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
2017/02/08 Javascript
源码分析Vue.js的监听实现教程
2017/04/23 Javascript
Three.js的使用及绘制基础3D图形详解
2017/04/27 Javascript
JS使用插件cryptojs进行加密解密数据实例
2017/05/11 Javascript
Angular实现搜索框及价格上下限功能
2018/01/19 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
vue中轮训器的使用
2019/01/27 Javascript
小程序采集录音并上传到后台
2019/11/22 Javascript
[05:40]DOTA2荣耀之路6:Wings最后进攻
2018/05/30 DOTA
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
对Python 除法负数取商的取整方式详解
2018/12/12 Python
对python内置map和six.moves.map的区别详解
2018/12/19 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
JD Sports法国:英国篮球和运动时尚的领导者
2017/09/28 全球购物
彪马荷兰官网:PUMA荷兰
2019/05/08 全球购物
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
毕业生物理教师求职信
2013/10/17 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
解决persistence.xml配置文件修改存放路径的问题
2022/02/24 Java/Android