ThinkPHP3.2.3框架Memcache缓存使用方法实例总结


Posted in PHP onApril 15, 2019

本文实例讲述了ThinkPHP3.2.3框架Memcache缓存使用方法。分享给大家供大家参考,具体如下:

前面一篇文章讲述了Linux下安装Memcached服务器和客户端,这里来总结一下ThinkPHP3.2.3框架Memcache的使用方法。

方法一:原生Memcache的写法

public function test1() {
  $mc = new \Memcache(); //创建Memcache对象
  $mc->connect("127.0.0.1", 11211); //连接Memcached服务器
  $mc->set('test1','hello world',0,10); //存储数据
  echo $mc->get('test'); //获取数据
  $mc->delete('test'); //删除数据
  $mc->flush(); //强制刷新全部缓存,即清空Memcached服务器
  $mc->close(); //断开与Memcached服务器的连接
}

方法二:直接调用集成好的Memcache缓存驱动

public function test2() {
  $mc = new \Think\Cache\Driver\Memcache(); //实例化Memcache驱动
  $mc->set('test2','hello world',60); //写入缓存
  echo $mc->get('test2'); //读取缓存
  $mc->rm('test2'); //删除指定缓存
  $mc->clear(); //清空全部缓存
}

方法三:S方法

①直接调用S方法

public function test3() {
  //缓存初始化
  S(array(
    'type'=>'memcache', //缓存类型
    'host'=>'127.0.0.1', //Memcache服务器地址
    'port'=>'11211', //Memcache端口号
    'prefix'=>'think', //缓存标识前缀 
    'expire'=>10,) //缓存有效期(时间为秒)
  );
  //设置缓存
  S('test3','hello world'); //可以改变缓存时间:S('test3','hello world',60);
  //读取缓存
  echo S('test3');
  //删除缓存
  S('test3',null);
}

②采用对象方式操作缓存

public function test4() {
  $cache = S(array('type'=>'memcache','prefix'=>'think','expire'=>10)); //缓存初始化
  $cache->test4 = 'hello world'; //设置缓存
  echo $cache->test4; //获取缓存
  unset($cache->test4); //删除缓存
}

手册中关于S方法初始化:如果不传入type参数,会读取配置文件中设置的DATA_CACHE_TYPE作为默认缓存类型;如果不传入prefix参数,会读取DATA_CACHE_PREFIX作为默认缓存标识前缀;如果不传入expire参数,会读取DATA_CACHE_TIME作为默认缓存有效期。

配置文件config.php中,关于Memcache缓存配置如下:

'DATA_CACHE_TYPE' => 'Memcache', //数据缓存类型
'DATA_CACHE_PREFIX' => '', //缓存前缀
'DATA_CACHE_TIME' => 10, //数据缓存有效期 0表示永久缓存
'DATA_CACHE_COMPRESS' => false, //数据缓存是否压缩缓存

配置之后调用S方法无需再初始化

public function test5() {
  //设置缓存
  S('test5','hello world');
  //读取缓存
  echo S('test5');
  //删除缓存
  S('test5',null);
}

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php heredoc和phpwind的模板技术使用方法小结
Mar 28 PHP
MySql中正则表达式的使用方法描述
Jul 30 PHP
PHP 透明水印生成代码
Aug 27 PHP
php 修改、增加xml结点属性的实现代码
Oct 22 PHP
php检测用户是否用手机(Mobile)访问网站的类
Jan 09 PHP
微信支付开发教程(一)微信支付URL配置
May 28 PHP
php获取用户浏览器版本的方法
Jan 03 PHP
PHP根据图片色界在不同位置加水印的方法
Jul 01 PHP
php用正则判断是否为数字的方法
Mar 25 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
Mar 25 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
Apr 25 PHP
通过代码实例解析PHP session工作原理
Dec 11 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 15 #PHP
Laravel如何创建服务器提供者实例代码
Apr 15 #PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 #PHP
php xhprof使用实例详解
Apr 15 #PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
Apr 15 #PHP
vmware linux系统安装最新的php7图解
Apr 14 #PHP
php7新特性的理解和比较总结
Apr 14 #PHP
You might like
PHP 页面编码声明方法详解(header或meta)
2010/03/12 PHP
实现获取http内容的php函数分享
2014/02/16 PHP
YII路径的用法总结
2014/07/09 PHP
[原创]PHP获取数组表示的路径方法分析【数组转字符串】
2017/09/01 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
把textarea中字符串里含有的回车换行替换成<br>的javascript代码
2007/04/20 Javascript
javascript实现的listview效果
2007/04/28 Javascript
javascript 网页跳转的方法
2008/12/24 Javascript
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
如何解决hover在ie6中的兼容性问题
2016/12/15 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
2018/08/12 Javascript
解决layui-open关闭自身窗口的问题
2019/09/10 Javascript
[27:08]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第二场 11.21
2020/11/23 DOTA
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
Python将阿拉伯数字转换为罗马数字的方法
2015/07/10 Python
Python使用Redis实现作业调度系统(超简单)
2016/03/22 Python
Python编程产生非均匀随机数的几种方法代码分享
2017/12/13 Python
python numpy 常用随机数的产生方法的实现
2019/08/21 Python
python数值基础知识浅析
2019/11/19 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
python实现图像拼接功能
2020/03/23 Python
a标签下载链接的简单实现
2016/09/13 HTML / CSS
马来西亚和新加坡巴士票在线预订:CatchThatBus
2018/11/17 全球购物
早读迟到检讨书
2014/01/24 职场文书
微观物理专业自荐信
2014/01/26 职场文书
退伍老兵事迹材料
2014/01/31 职场文书
教师现实表现材料
2014/02/14 职场文书
一帮一活动总结
2014/05/08 职场文书
音乐节策划方案
2014/06/09 职场文书
质量提升方案
2014/06/16 职场文书
家庭困难证明
2014/10/12 职场文书
企业培训简报范文
2015/07/20 职场文书
详解Vue的options
2021/05/15 Vue.js