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生成HTML静态页面实例代码
Aug 31 PHP
php摘要生成函数(无乱码)
Feb 04 PHP
解析php中curl_multi的应用
Jul 17 PHP
php中动态调用函数的方法
Mar 16 PHP
PHP的Yii框架入门使用教程
Feb 15 PHP
php通过会话控制实现身份验证实例
Oct 18 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
Jan 12 PHP
php使用parse_str实现查询字符串解析到变量中的方法
Feb 17 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
Mar 14 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
购物车实现的几种方式优缺点对比
May 02 PHP
laravel5.0在linux下解决.htaccess无效和去除index.php的问题
Oct 16 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中文件上传的安全问题
2006/10/09 PHP
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
joomla组件开发入门教程
2016/05/04 PHP
laravel学习教程之存取器
2016/07/30 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
jQuery 扩展对input的一些操作方法
2009/10/30 Javascript
HTML DOM的nodeType值介绍
2011/03/31 Javascript
js 字符串转化成数字的代码
2011/06/29 Javascript
关于javascript event flow 的一个bug详解
2013/09/17 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
JavaScript实现Java中Map容器的方法
2016/10/09 Javascript
NodeJS基础API搭建服务器详细过程记录
2017/04/01 NodeJs
Vue使用vux-ui自定义表单验证遇到的问题及解决方法
2018/05/10 Javascript
使用jQuery动态设置单选框的选中效果
2018/12/06 jQuery
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
从零搭一个自用的前端脚手架的方法步骤
2019/09/23 Javascript
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
使用cx_freeze把python打包exe示例
2014/01/24 Python
python实现封装得到virustotal扫描结果
2014/10/05 Python
Python实现类似jQuery使用中的链式调用的示例
2016/06/16 Python
Python 的类、继承和多态详解
2017/07/16 Python
python脚本实现验证码识别
2018/06/07 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
2018/06/11 Python
python实现连续图文识别
2018/12/18 Python
python图片二值化提高识别率代码实例
2019/08/24 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
三星美国官网:Samsung美国
2017/02/06 全球购物
美国领先的低折扣旅行网站:Hotwire
2019/01/19 全球购物
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
应聘编辑自荐信范文
2014/03/12 职场文书
2015年小学生自我评价范文
2015/03/03 职场文书
手把手教你使用TensorFlow2实现RNN
2021/07/15 Python