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 相关文章推荐
文章推荐系统(三)
Oct 09 PHP
Mysql的GROUP_CONCAT()函数使用方法
Mar 28 PHP
php数组一对一替换实现代码
Aug 31 PHP
基于php 随机数的深入理解
Jun 05 PHP
PHP中把数据库查询结果输出为json格式简单实例
Apr 09 PHP
浅谈PHP接收POST数据方式
Jun 05 PHP
php fseek函数读取大文件两种方法
Oct 12 PHP
如何用PHP做到页面注册审核
Mar 02 PHP
PHP实现链表的定义与反转功能示例
Jun 09 PHP
yii2实现Ueditor百度编辑器的示例代码
Nov 02 PHP
laravel框架之数据库查出来的对象实现转化为数组
Oct 23 PHP
Yii redis集合的基本使用教程
Jun 14 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函数代码
2010/04/22 PHP
如何让CI框架支持service层
2014/10/29 PHP
thinkPHP多语言切换设置方法详解
2016/11/11 PHP
Laravel 的数据库迁移的方法
2017/07/31 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
window.open关于浏览器拦截问题分析及解决方法
2013/02/05 Javascript
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
js中使用使用原型(prototype)定义方法的好处详解
2016/07/04 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
2019/05/26 Javascript
在vue中封装方法以及多处引用该方法详解
2020/08/14 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
Python面向对象基础入门之设置对象属性
2018/12/11 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
您的网上新华书店:文轩网
2016/08/24 全球购物
Perfumetrader荷兰:香水、化妆品和护肤品在线商店
2017/09/15 全球购物
Columbia Sportswear法国官网:全球户外品牌
2020/09/25 全球购物
What is view? why do we have view?
2012/06/22 面试题
毕业生在校学习的自我评价分享
2013/10/08 职场文书
历史专业毕业生的自我鉴定
2013/11/15 职场文书
司法建议书范文
2014/05/13 职场文书
房地产端午节活动方案
2014/08/24 职场文书
2015年扶贫帮困工作总结
2015/05/20 职场文书
2016年小学生新年寄语
2015/08/18 职场文书
小学一年级班主任工作经验交流材料
2015/11/02 职场文书
请假条应该怎么写?
2019/06/24 职场文书
Python开发简易五子棋小游戏
2022/05/02 Python