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 相关文章推荐
如何用phpmyadmin设置mysql数据库用户的权限
Jan 09 PHP
php+iframe实现隐藏无刷新上传文件
Feb 10 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
YII Framework教程之异常处理详解
Mar 14 PHP
浅谈PHP的反射机制
Dec 15 PHP
php防止sql注入的方法详解
Feb 20 PHP
PHP判断密码强度的方法详解
May 26 PHP
PHP+JS实现的实时搜索提示功能
Mar 13 PHP
centos7上编译安装php7以php-fpm方式连接apache
Nov 08 PHP
php设计模式之工厂模式用法经典实例分析
Sep 20 PHP
解决在laravel中auth建立时候遇到的问题
Oct 15 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
新的一年,新的期待:DC在2020年的四部动画电影
2020/01/01 欧美动漫
《APMServ 5.1.2》使用图解
2006/10/23 PHP
使用正则去除php代码中的注释方法
2016/11/03 PHP
jQuery 性能优化指南(2)
2009/05/21 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
2014/05/22 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
2016/07/06 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
详解vue-cli中模拟数据的两种方法
2018/07/03 Javascript
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
jquery实现有过渡效果的tab切换
2020/07/17 jQuery
vue界面发送表情的实现代码
2020/09/11 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
[03:14]辉夜杯主赛事 12月25日每日之星
2015/12/26 DOTA
[00:32]2018DOTA2亚洲邀请赛iG出场
2018/04/03 DOTA
python 打印出所有的对象/模块的属性(实例代码)
2016/09/11 Python
python list多级排序知识点总结
2019/10/23 Python
TensorFlow加载模型时出错的解决方式
2020/02/06 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
美国老牌主机服务商:iPage
2016/07/22 全球购物
Hoover胡佛官网:美国吸尘器和洗地机品牌
2019/01/09 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
生物制药毕业生自荐信
2013/10/16 职场文书
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
汽车维修工岗位职责
2014/02/12 职场文书
个人实习生的自我评价
2014/02/16 职场文书
国贸专业的职业规划书
2014/03/15 职场文书
农民工工资支付承诺函
2014/03/31 职场文书
2015年社区妇联工作总结
2015/04/21 职场文书
管辖权异议上诉状
2015/05/23 职场文书
紧急迫降观后感
2015/06/15 职场文书
运动会开幕式主持词
2015/07/01 职场文书