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 相关文章推荐
自动分页的不完整解决方案
Jan 12 PHP
php学习笔记 面向对象中[接口]与[多态性]的应用
Jun 16 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
PHP中实现生成静态文件的方法缓解服务器压力
Jan 07 PHP
PHP+memcache实现消息队列案例分享
May 21 PHP
如何让搜索引擎抓取AJAX内容解决方案
Aug 25 PHP
php计算一个文件大小的方法
Mar 30 PHP
php快速查找数据库中恶意代码的方法
Apr 01 PHP
浅谈PHP中foreach/in_array的使用
Nov 02 PHP
Yii2使用swiftmailer发送邮件的方法
May 03 PHP
PHP使用PDO抽象层获取查询结果的方法示例
May 10 PHP
PHP依赖注入原理与用法分析
Aug 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
IIS下配置Php+Mysql+zend的图文教程
2006/12/08 PHP
php递归遍历多维数组的方法
2015/04/18 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
jquery 快速回到页首的方法
2013/12/05 Javascript
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
JavaScript获取路径设计源码
2014/05/22 Javascript
JavaScript实现三阶幻方算法谜题解答
2014/12/29 Javascript
Js实现无刷新删除内容
2015/04/29 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
原生JS实现网页手机音乐播放器 歌词同步播放的示例
2018/02/02 Javascript
详解用Node.js写一个简单的命令行工具
2018/03/01 Javascript
vue mounted组件的使用
2018/06/18 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
Vue-cli3.x + axios 跨域方案踩坑指北
2019/07/04 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
vue如何搭建多页面多系统应用
2020/06/17 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
简单上手Python中装饰器的使用
2015/07/12 Python
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
Python脚本实现12306火车票查询系统
2016/09/30 Python
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
python绘制地震散点图
2019/06/18 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
2019/09/11 Python
Python 经典算法100及解析(小结)
2019/09/13 Python
python数据预处理 :数据抽样解析
2020/02/24 Python
matplotlib图例legend语法及设置的方法
2020/07/28 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
2021/02/26 Python
详解CSS3中使用gradient实现渐变效果的方法
2015/08/18 HTML / CSS
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
旅游管理专业个人求职信范文
2013/12/24 职场文书
2014年党员整改措施范文
2014/09/21 职场文书
人事专员岗位职责
2015/02/03 职场文书
一般纳税人申请报告
2015/05/18 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书
python数据分析之用sklearn预测糖尿病
2021/04/22 Python