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开发GUI
Oct 09 PHP
GD输出汉字的函数的分析
Oct 09 PHP
写出高质量的PHP程序
Feb 04 PHP
深入分析php之面向对象
May 15 PHP
PHP Session 变量的使用方法详解与实例代码
Sep 11 PHP
destoon利用Rewrite规则设置网站安全
Jun 21 PHP
PHP实现货币换算的方法
Nov 29 PHP
php面向对象与面向过程两种方法给图片添加文字水印
Aug 26 PHP
CI框架文件上传类及图像处理类用法分析
May 18 PHP
PHP怎样用正则抓取页面中的网址
Aug 09 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
Jul 07 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
Oct 21 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
杏林同学录(九)
2006/10/09 PHP
解析php中eclipse 用空格替换 tab键
2013/06/24 PHP
PHP 伪静态技术原理以及突破原理实现介绍
2013/07/12 PHP
YII中assets的使用示例
2014/07/31 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
2017/10/13 PHP
用于table内容排序
2006/07/21 Javascript
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
2012/05/23 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
JQuery select(下拉框)操作方法汇总
2015/04/15 Javascript
JavaScript数据类型转换的注意事项
2016/07/31 Javascript
js模拟支付宝密码输入框
2017/04/11 Javascript
webpack4.x打包过程详解
2018/07/18 Javascript
原来JS还可以这样拆箱转换详解
2019/02/01 Javascript
详解vue.js移动端配置flexible.js及注意事项
2019/04/10 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
python实现socket端口重定向示例
2014/02/10 Python
跟老齐学Python之??碌某?? target=
2014/09/12 Python
python实现的多线程端口扫描功能示例
2017/01/21 Python
socket + select 完成伪并发操作的实例
2017/08/15 Python
python实现数据预处理之填充缺失值的示例
2017/12/22 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
详解Python requests 超时和重试的方法
2018/12/18 Python
Python将字符串常量转化为变量方法总结
2019/03/17 Python
python 轮询执行某函数的2种方式
2020/05/03 Python
Boom手表官网:瑞典手表品牌,设计你的手表
2019/03/11 全球购物
植村秀美国官网:Shu Uemura美国
2019/03/19 全球购物
化学相关工作求职信
2013/10/02 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
求职个人评价范文
2014/04/09 职场文书
应届生求职自荐信
2014/07/04 职场文书
结婚纪念日感言
2015/08/01 职场文书