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 相关文章推荐
JAVA/JSP学习系列之二
Oct 09 PHP
PHP VS ASP
Oct 09 PHP
不用数据库的多用户文件自由上传投票系统(2)
Oct 09 PHP
smarty的保留变量问题
Oct 23 PHP
Mysql数据库操作类( 1127版,提供源码下载 )
Dec 02 PHP
PHP获取文件绝对路径的代码(上一级目录)
May 29 PHP
Ubuntu12下编译安装PHP5.3开发环境
Mar 27 PHP
yii分页组件用法实例分析
Dec 28 PHP
php实现36进制与10进制转换功能示例
Jan 10 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
php在linux环境中如何使用redis详解
Dec 15 PHP
php将xml转化对象的实例详解
Nov 17 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面向对象法则
2012/02/23 PHP
Laravel 中获取上一篇和下一篇数据
2015/07/27 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
JavaScript 三种创建对象的方法
2009/10/16 Javascript
JavaScript 函数式编程的原理
2009/10/16 Javascript
选择TreeView控件的树状数据节点的JS方法(jquery)
2010/02/06 Javascript
JavaScript 语言的递归编程
2010/05/18 Javascript
基于jquery的cookie的用法
2011/01/10 Javascript
动态改变div的z-index属性的简单实例
2013/08/08 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
Bootstrap选项卡与Masonry插件的完美结合
2016/07/06 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
2018/09/25 Javascript
微信小程序实现随机验证码功能
2018/12/20 Javascript
laravel实现中文和英语互相切换的例子
2019/09/30 Javascript
微信小程序登录时如何获取input框中的内容
2019/12/04 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
2020/02/25 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
详解python异步编程之asyncio(百万并发)
2018/07/07 Python
python对于requests的封装方法详解
2019/01/03 Python
对Django中的权限和分组管理实例讲解
2019/08/16 Python
python3爬取torrent种子链接实例
2020/01/16 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
Anaconda+Pycharm环境下的PyTorch配置方法
2020/03/13 Python
基于python连接oracle导并出数据文件
2020/04/28 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
Get The Label中文官网:英国运动时尚购物平台
2017/04/19 全球购物
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
struct与class的区别
2014/02/03 面试题
公司踏青活动方案
2014/08/16 职场文书
2014年社区党建工作汇报材料
2014/11/02 职场文书
2014年个人师德工作总结
2014/12/04 职场文书
Python编程编写完善的命令行工具
2021/09/15 Python