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 相关文章推荐
如何做到多笔资料的同步
Oct 09 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
Jun 05 PHP
php常用Stream函数集介绍
Jun 24 PHP
浅谈PHP调用Webservice思路及源码分享
Jun 04 PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
Jun 12 PHP
php实现建立多层级目录的方法
Jul 19 PHP
PHP中cookie和session的区别实例分析
Aug 28 PHP
十大使用PHP框架的理由
Sep 26 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
Dec 21 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
Feb 15 PHP
PHP微信开发之查询微信精选文章
Jun 23 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
Nov 13 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中函数rand和mt_rand的区别比较
2012/12/26 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
Yii框架安装简明教程
2020/05/15 PHP
Nigma vs Liquid BO3 第一场2.13
2021/03/10 DOTA
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
2016/05/09 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
javascript对HTML字符转义与反转义
2018/12/13 Javascript
vue2.0自定义指令示例代码详解
2019/04/25 Javascript
浅谈Node 异步IO和事件循环
2019/05/05 Javascript
关于layui 弹出层一闪而过就消失的解决方法
2019/09/09 Javascript
JavaScript canvas基于数组生成柱状图代码实例
2020/03/06 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
[58:00]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第二场 2月7日
2021/03/11 DOTA
Python调用命令行进度条的方法
2015/05/05 Python
判断网页编码的方法python版
2016/08/12 Python
利用python获取当前日期前后N天或N月日期的方法示例
2017/07/30 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
2020/03/26 Python
python程序如何进行保存
2020/07/03 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
2020/11/28 Python
HTML5网页音乐播放器的示例代码
2017/11/09 HTML / CSS
高清屏下canvas重置尺寸引发的问题的解决
2019/10/14 HTML / CSS
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
台湾母婴用品限时团购:妈咪爱
2018/08/03 全球购物
服装公司总经理岗位职责
2013/11/30 职场文书
住房公积金接收函
2014/01/09 职场文书
创意广告词
2014/03/17 职场文书
高中竞选班长演讲稿
2014/04/24 职场文书
公司经理任命书
2014/06/05 职场文书
增员口号大全
2014/06/18 职场文书
干部作风整顿自我剖析材料和整改措施
2014/09/18 职场文书
社保代办委托书怎么写
2014/10/06 职场文书
怎样写观后感
2015/06/19 职场文书
2016年“我们的节日·中秋节”活动总结
2016/04/05 职场文书
mysql主从复制的实现步骤
2021/10/24 MySQL