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 相关文章推荐
解决控件遮挡问题:关于有窗口元素和无窗口元素
Jan 28 PHP
Smarty+QUICKFORM小小演示
Feb 25 PHP
PHP 面向对象 final类与final方法
May 05 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
Jul 03 PHP
php 数据库字段复用的基本原理与示例
Jul 22 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
Jun 14 PHP
php筛选不存在的图片资源
Apr 28 PHP
php中二分法查找算法实例分析
Sep 22 PHP
PHP反射API示例分享
Oct 08 PHP
php实现36进制与10进制转换功能示例
Jan 10 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
windows 2008r2+php5.6.28环境搭建详细过程
Jun 18 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获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
yii,CI,yaf框架+smarty模板使用方法
2015/12/29 PHP
微信公众平台DEMO(PHP)
2016/05/04 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
CI框架数据库查询缓存优化的方法
2016/11/21 PHP
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
2019/09/18 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
asp 的 分词实现代码
2007/05/24 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
Javascript动态创建div的方法
2015/02/09 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
JavaScript使用ActiveXObject访问Access和SQL Server数据库
2015/04/02 Javascript
js判断某个字符出现的次数的简单实例
2016/06/03 Javascript
各式各样的导航条效果css3结合jquery代码实现
2016/09/17 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
Java与JavaScript中判断两字符串是否相等的区别
2017/03/13 Javascript
Vue组件之极简的地址选择器的实现
2018/05/31 Javascript
vue router导航守卫(router.beforeEach())的使用详解
2019/04/19 Javascript
python基础教程之缩进介绍
2014/08/29 Python
Python开发的实用计算器完整实例
2017/05/10 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
在python中利用dict转json按输入顺序输出内容方式
2020/02/27 Python
python热力图实现简单方法
2021/01/29 Python
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
法国亚马逊官方网站:Amazon.fr
2020/12/19 全球购物
迟到检讨书800字
2014/01/13 职场文书
医药类个人求职的自我评价
2014/02/12 职场文书
小学领导班子对照材料
2014/08/23 职场文书
计划生育个人总结
2015/03/02 职场文书
中学生自我评价范文
2015/03/03 职场文书
朋友聚会开场白
2015/06/01 职场文书
人与自然的观后感
2015/06/18 职场文书
小学英语课教学反思
2016/02/15 职场文书
学习计划是什么
2019/04/30 职场文书