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 相关文章推荐
mysq GBKl乱码
Nov 28 PHP
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
Apr 12 PHP
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
Nov 18 PHP
PHP HTML代码串 截取实现代码
Jun 29 PHP
php下载文件的代码示例
Jun 29 PHP
PHP函数eval()介绍和使用示例
Aug 20 PHP
php ImageMagick windows下安装教程
Jan 26 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
Symfony的安装和配置方法
Mar 17 PHP
ThinkPHP下表单令牌错误与解决方法分析
May 20 PHP
php生成条形码的图片的实例详解
Sep 13 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
May 31 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
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
2014/10/15 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
php命令行写shell实例详解
2018/07/19 PHP
php源码的安装方法和实例
2019/09/26 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
js实现的仿新浪微博完美的时间组件升级版
2011/12/20 Javascript
SinaEditor使用方法详解
2013/12/28 Javascript
javascript实现继承的简单实例
2015/07/26 Javascript
javascript html5实现表单验证
2016/03/01 Javascript
js简单时间比较的方法
2016/08/02 Javascript
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换
2016/12/06 Javascript
JavaScript常见的五种数组去重的方式
2016/12/15 Javascript
nodejs基础知识
2017/02/03 NodeJs
深入解析js轮播插件核心代码的实现过程
2017/04/14 Javascript
Vue.js tab实现选项卡切换
2017/05/16 Javascript
Javascript 严格模式use strict详解
2017/09/16 Javascript
Vue header组件开发详解
2018/01/26 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
微信小程序使用npm支持踩坑
2018/11/07 Javascript
回顾Javascript React基础
2019/06/15 Javascript
vue:el-input输入时限制输入的类型操作
2020/08/05 Javascript
[01:04:06]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第一局
2016/02/26 DOTA
Python数组条件过滤filter函数使用示例
2014/07/22 Python
Python写的英文字符大小写转换代码示例
2015/03/06 Python
Python脚本在Appium库上对移动应用实现自动化测试
2015/04/17 Python
python 生成器协程运算实例
2017/09/04 Python
用xpath获取指定标签下的所有text的实例
2019/01/02 Python
对Django项目中的ORM映射与模糊查询的使用详解
2019/07/18 Python
基于python解线性矩阵方程(numpy中的matrix类)
2019/10/21 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
JAVA代码查错题
2014/10/10 面试题
车间班长岗位职责
2013/11/30 职场文书
企业员工培训感言
2014/02/26 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
MySQL官方导出工具mysqlpump的使用
2021/05/21 MySQL