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原创论坛
Oct 09 PHP
PHP编程中字符串处理的5个技巧小结
Nov 13 PHP
php绝对路径与相对路径之间关系的的分析
Mar 03 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
Jan 27 PHP
php微信公众开发之获取周边酒店信息的方法
Dec 22 PHP
php判断当前用户已在别处登录的方法
Jan 06 PHP
php动态绑定变量的用法
Jun 16 PHP
php实现微信公众号无限群发
Oct 11 PHP
PHP关键特性之命名空间实例详解
May 06 PHP
PDO::errorInfo讲解
Jan 28 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
Feb 13 PHP
解决PhpStorm64不能启动的问题
Jun 20 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 xml留言板 xml存储数据的简单例子
2009/08/24 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
dedecms中使用php语句指南
2014/11/13 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
yii2 上传图片的示例代码
2018/11/02 PHP
在JavaScript中遭遇级联表达式陷阱
2007/03/08 Javascript
javascript textContent与innerText的异同分析
2010/10/22 Javascript
JavaScript性能陷阱小结(附实例说明)
2010/12/28 Javascript
基于jquery的无刷新分页技术
2011/06/11 Javascript
javascript学习笔记(三)BOM和DOM详解
2014/09/30 Javascript
jQuery插件开发的五种形态小结
2015/03/04 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
解决vue 中 echart 在子组件中只显示一次的问题
2018/08/07 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
Vue 列表上下过渡效果的实例代码
2019/06/25 Javascript
JavaScript监听一个DOM元素大小变化
2020/04/26 Javascript
python从ftp下载数据保存实例
2013/11/20 Python
python根据距离和时长计算配速示例
2014/02/16 Python
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
Python模块文件结构代码详解
2018/02/03 Python
Python3中的bytes和str类型详解
2019/05/02 Python
Python实现时间序列可视化的方法
2019/08/06 Python
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
施华洛世奇德国官网:SWAROVSKI德国
2017/02/01 全球购物
Zipadee-Zip襁褓过渡毯:Sleeping Baby
2018/12/30 全球购物
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
店长岗位职责
2013/11/21 职场文书
2014新课程改革心得体会
2014/03/10 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
国际贸易本科毕业生求职信
2014/09/26 职场文书
银行职员工作失误检讨书
2014/10/14 职场文书
长城导游词300字
2015/01/30 职场文书
联谊会开场白
2015/06/01 职场文书
保险公司2016开门红口号集锦
2015/12/24 职场文书
MySQL系列之一 MariaDB-server安装
2021/07/02 MySQL
springboot 全局异常处理和统一响应对象的处理方式
2022/06/28 Java/Android