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 08 PHP
PHP中全面阻止SQL注入式攻击分析小结
Jan 30 PHP
探讨PHP JSON中文乱码的解决方法详解
Jun 06 PHP
分享PHP header函数使用教程
Sep 05 PHP
PHP常用函数和常见疑难问题解答
Mar 05 PHP
php伪静态之APACHE篇
Jun 02 PHP
php获取图片信息的方法详解
Dec 10 PHP
深入解析PHP的Yii框架中的event事件机制
Mar 17 PHP
php自定义时间转换函数示例
Dec 07 PHP
浅谈PHP实现大流量下抢购方案
Dec 15 PHP
PHP实现搜索时记住状态的方法示例
May 11 PHP
Laravel如何实现适合Api的异常处理响应格式
Jun 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
discuz7 phpMysql操作类
2009/06/21 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
php 按指定元素值去除数组元素的实现方法
2011/11/04 PHP
PHP实现的oracle分页函数实例
2016/01/25 PHP
php中static和const关键字用法分析
2016/12/07 PHP
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
jquery实现倒计时功能
2015/12/28 Javascript
使用AJAX实现Web页面进度条的实例分享
2016/05/06 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
2016/07/28 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
微信小程序 网络API 上传、下载详解
2016/11/09 Javascript
jQuery对table表格进行增删改查
2020/12/22 Javascript
JS小球抛物线轨迹运动的两种实现方法详解
2017/12/20 Javascript
深入浅析vue组件间事件传递
2017/12/29 Javascript
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
nodeJS服务器的创建和重新启动的实现方法
2018/05/12 NodeJs
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
[01:07:13]TNC vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
python django使用haystack:全文检索的框架(实例讲解)
2017/09/27 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
浅谈Python中的继承
2020/06/19 Python
Python二元算术运算常用方法解析
2020/09/15 Python
HTML5 canvas基本绘图之绘制线段
2016/06/27 HTML / CSS
extern是什么意思
2016/03/10 面试题
物流专业毕业生推荐信范文
2013/11/18 职场文书
销售简历自我评价
2014/01/24 职场文书
班长演讲稿范文
2014/04/24 职场文书
出生证明范本
2015/06/15 职场文书
导游词之海南-南湾猴岛
2019/10/12 职场文书
500字作文之关于爸爸
2019/11/14 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
Python序列化与反序列化相关知识总结
2021/06/08 Python
解析MySQL binlog
2021/06/11 MySQL
golang 实用库gotable的具体使用
2021/07/01 Golang
微信小程序实现轮播图指示器
2022/06/25 Javascript