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中的注释、变量、数组、常量、函数应用介绍
Nov 16 PHP
强烈声明: 不要使用(include/require)_once
Jun 06 PHP
php设计模式之单例模式实例分析
Feb 25 PHP
四个常见html网页乱码问题及解决办法
Sep 08 PHP
PHP生成条形码大揭秘
Sep 24 PHP
Apache无法自动跳转却显示目录的解决方法
Nov 30 PHP
PHP定时任务获取微信access_token的方法
Oct 10 PHP
PHP请求远程地址设置超时时间的解决方法
Oct 29 PHP
php获取数据库中数据的实现方法
Jun 01 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
Laravel框架源码解析之反射的使用详解
May 14 PHP
laravel使用redis队列实例讲解
Mar 23 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
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
PHP生成HTML静态页面实例代码
2008/08/31 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
js停止输出代码
2008/07/20 Javascript
图片Slider 带左右按钮的js示例
2013/08/30 Javascript
简介JavaScript中的push()方法的使用
2015/06/09 Javascript
正则中的回溯定义与用法分析【JS与java实现】
2016/12/27 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
Bootstrap模态框插入视频的实现代码
2017/06/25 Javascript
vue2.x select2 指令封装详解
2017/10/12 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
浅谈React碰到v-if
2018/11/04 Javascript
vue+高德地图写地图选址组件的方法
2019/05/18 Javascript
用Python实现换行符转换的脚本的教程
2015/04/16 Python
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
解决Tensorflow使用pip安装后没有model目录的问题
2018/06/13 Python
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
python将字符串转换成json的方法小结
2019/07/09 Python
python IDLE 背景以及字体大小的修改方法
2019/07/12 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
.NET初级开发工程师面试题
2014/04/18 面试题
模具设计与制造专业应届生求职信
2013/10/18 职场文书
文明寄语大全
2014/04/11 职场文书
热爱祖国演讲稿
2014/05/04 职场文书
现场活动策划方案
2014/08/22 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
购房委托书
2014/10/15 职场文书
2014年医德医风工作总结
2014/11/13 职场文书
法律服务所工作总结
2015/08/10 职场文书
python OpenCV学习笔记
2021/03/31 Python
Django+Nginx+uWSGI 定时任务的实现方法
2022/01/22 Python
利用Python多线程实现图片下载器
2022/03/25 Python
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫