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正则
Jul 07 PHP
PHP聊天室技术
Oct 09 PHP
如何修改和添加Apache的默认站点目录
Jul 05 PHP
php 获取页面中指定内容的实现类
Jan 23 PHP
php通过array_merge()函数合并关联和非关联数组的方法
Mar 18 PHP
php实现QQ空间获取当前用户的用户名并生成图片
Jul 25 PHP
Java中final关键字详解
Aug 10 PHP
学习PHP Cookie处理函数
Aug 09 PHP
php array_merge_recursive 数组合并
Oct 26 PHP
PHP面向对象程序设计之类与反射API详解
Dec 02 PHP
通过php动态传数据到highcharts
Apr 05 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
Jul 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
利用static实现表格的颜色隔行显示的代码
2007/09/02 PHP
destoon官方标签大全
2014/06/20 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
2016/07/21 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
让iframe框架网页在任何浏览器下自动伸缩
2006/08/18 Javascript
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
javascript中call apply 的应用场景
2015/04/16 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
2017/08/17 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
2020/09/25 Javascript
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
Python中List.index()方法的使用教程
2015/05/20 Python
Selenium定位元素操作示例
2018/08/10 Python
详解python配置虚拟环境
2019/04/08 Python
Pytorch实现神经网络的分类方式
2020/01/08 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
2021/02/07 Python
HTML5 window/iframe跨域传递消息 API介绍
2013/08/26 HTML / CSS
全球性的在线婚纱礼服工厂:27dress.com
2019/03/21 全球购物
Linux的文件类型
2016/07/05 面试题
美术国培研修感言
2014/02/12 职场文书
医学生毕业自我鉴定
2014/03/26 职场文书
餐饮周年庆活动方案
2014/08/14 职场文书
寻找最美家庭活动方案
2014/08/20 职场文书
2014年教师节国旗下讲话稿
2014/09/10 职场文书
高中班主任心得体会
2016/01/07 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
Vue详细的入门笔记
2021/05/10 Vue.js
通过T-SQL语句创建游标与实现数据库加解密功能
2022/03/16 SQL Server
postgreSQL数据库基础知识介绍
2022/04/12 PostgreSQL
vue使用watch监听属性变化
2022/04/30 Vue.js
使用Redis实现分布式锁的方法
2022/06/16 Redis