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获取url字符串截取路径的文件名和扩展名的函数
Jan 22 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
Jul 15 PHP
学习php过程中的一些注意点的总结
Oct 25 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
Dec 22 PHP
php获取随机数组列表的方法
Nov 13 PHP
PHP中文编码小技巧
Dec 25 PHP
php中异常处理方法小结
Jan 09 PHP
php将数组转换成csv格式文件输出的方法
Mar 14 PHP
PHP 前加at符合@的作用解析
Jul 31 PHP
php实现可逆加密的方法
Aug 11 PHP
Symfony2安装的方法(2种方法)
Feb 04 PHP
学习thinkphp5.0验证类使用方法
Nov 16 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
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
PHP 身份验证方面的函数
2009/10/11 PHP
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
php将服务端的文件读出来显示在web页面实例
2016/10/31 PHP
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
读jQuery之二(两种扩展)
2011/06/11 Javascript
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
javascript事件委托的用法及其好处简析
2016/04/04 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
JavaScript实现简单的树形菜单效果
2017/06/23 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
vue-cli中打包图片路径错误的解决方法
2017/10/26 Javascript
JavaScript中Dom操作实例详解
2019/07/08 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
Python3中常用的处理时间和实现定时任务的方法的介绍
2015/04/07 Python
Python 'takes exactly 1 argument (2 given)' Python error
2016/12/13 Python
python中使用print输出中文的方法
2018/07/16 Python
Python实现常见的回文字符串算法
2018/11/14 Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
2018/12/11 Python
tensorflow多维张量计算实例
2020/02/11 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
2020/05/19 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
一文带你了解Python 四种常见基础爬虫方法介绍
2020/12/04 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
remote接口和home接口主要作用
2013/05/15 面试题
爱情保证书范文
2014/02/01 职场文书
物流专员岗位职责
2014/02/17 职场文书
学习保证书范文
2014/04/30 职场文书
端午节寄语2015
2015/03/23 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
导游词之太湖
2019/10/08 职场文书
十大最强格斗系宝可梦,超梦X仅排第十,第二最重格斗礼仪
2022/03/18 日漫
mysql 生成连续日期及变量赋值
2022/03/20 MySQL