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开启gzip页面压缩实例代码
Mar 11 PHP
使用XDebug调试及单元测试覆盖率分析
Jan 27 PHP
php笔记之:初探PHPcms模块开发介绍
Apr 26 PHP
解析linux下安装memcacheq(mcq)全过程笔记
Jun 27 PHP
生成随机字符串和验证码的类的PHP实例
Dec 24 PHP
php生成缩略图示例代码分享(使用gd库实现)
Jan 20 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
一张表搞清楚php is_null、empty、isset的区别
Jul 07 PHP
培养自己的php编码规范
Sep 28 PHP
WordPress中注册菜单与调用菜单的方法详解
Dec 18 PHP
PHP设计模式之观察者模式定义与用法示例
Aug 04 PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
Oct 03 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分页时出现的Fatal error的解决方法
2011/04/18 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
2014/11/18 PHP
php需登录的文件上传管理系统
2020/03/21 PHP
PHP预定义接口――Iterator用法示例
2020/06/05 PHP
js 遍历对象的属性的代码
2011/12/29 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
理解javascript中的严格模式
2016/02/01 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
2016/07/09 Javascript
浅谈js中对象的使用
2016/08/11 Javascript
js中常用的Tab切换效果(推荐)
2016/08/30 Javascript
sea.js常用的api简易文档
2016/11/15 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
详解Angular 4.x NgIf 的用法
2017/05/22 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
js实现控制文件拖拽并获取拖拽内容功能
2018/02/17 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
python中requests和https使用简单示例
2018/01/18 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
python爬虫添加请求头代码实例
2019/12/28 Python
pytorch中torch.max和Tensor.view函数用法详解
2020/01/03 Python
python如何写try语句
2020/07/14 Python
Python logging模块原理解析及应用
2020/08/13 Python
jupyter notebook远程访问不了的问题解决方法
2021/01/11 Python
HTML5中的新元素介绍
2008/10/17 HTML / CSS
生产副总岗位职责
2013/11/28 职场文书
《二泉映月》教学反思
2014/04/15 职场文书
标准版离职证明书
2014/09/12 职场文书
学校组织向国旗敬礼活动方案(中小学适用)
2014/09/27 职场文书
酒店辞职书怎么写
2015/02/26 职场文书
详解Spring Boot使用系统参数表提升系统的灵活性
2021/06/30 Java/Android
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL
python高温预警数据获取实例
2022/07/23 Python