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 程序员应该使用的10个组件
Oct 31 PHP
PHP 文件上传全攻略
Apr 28 PHP
php cli 小技巧
Jun 03 PHP
解析如何用php screw加密php源代码
Jun 20 PHP
PHP中使用sleep函数实现定时任务实例分享
Aug 21 PHP
php+MySQL实现登录时验证登录名和密码是否正确
May 10 PHP
php实现用户登陆简单实例
Apr 04 PHP
thinkPHP多表查询及分页功能实现方法示例
Jul 03 PHP
php使用curl伪造来源ip和refer的方法示例
May 08 PHP
PHP中用Trait封装单例模式的实现
Dec 18 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
Mar 27 PHP
PHP终止脚本运行三种实现方法详解
Sep 01 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
php5 non-thread-safe和thread-safe这两个版本的区别分析
2010/03/13 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
PHP代码重构方法漫谈
2018/04/17 PHP
通用javascript脚本函数库 方便开发
2009/10/13 Javascript
JavaScript 组件之旅(二)编码实现和算法
2009/10/28 Javascript
jquery.validate使用攻略 第一部
2010/07/01 Javascript
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
深入分析js的冒泡事件
2014/12/05 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
搞定immutable.js详细说明
2016/05/02 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
AngularJS基础 ng-show 指令简单示例
2016/08/03 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
Vuejs第十篇之vuejs父子组件通信
2016/09/06 Javascript
javascript 动态生成css代码的两种方法
2017/03/17 Javascript
利用node.js如何搭建一个简易的即时响应服务器
2017/05/28 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
node.js的Express服务器基本使用教程
2019/01/09 Javascript
[49:08]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
tensorflow 获取变量&打印权值的实例讲解
2018/06/14 Python
python程序封装为win32服务的方法
2021/03/07 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
python关闭占用端口方式
2019/12/17 Python
python中有关时间日期格式转换问题
2019/12/25 Python
英国家庭珠宝商:T. H. Baker
2018/02/08 全球购物
Camille Jewelry官网:现代女性时尚首饰
2019/07/07 全球购物
高校毕业生登记表自我鉴定
2013/11/03 职场文书
俞敏洪励志演讲稿
2014/04/29 职场文书
欢迎横幅标语
2014/06/17 职场文书
2014年大学教师工作总结
2014/12/02 职场文书
2014年幼儿园保育工作总结
2014/12/02 职场文书
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL
Mysql分析设计表主键为何不用uuid
2022/03/31 MySQL