这篇文章将为大家详细讲解有关Yii框架使用MemCache缓存的示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
具体操作如下所示:
一、配置MemCache服务器服务器
1,下载memcached软件包,下载地址:
http://pan.baidu.com/s/1boAnghp
解压,把memcached.exe放到随意一个地方,比如:d:/memcached/下(我解压到了我的wampserver的本目录下与php目录同级)。
2, windows + R快捷键输入cmd,在命令行中输入一下代码,切换到MemCache。exe的目录下:
3,输入如下代码安装MemCache。exe: memcached。exe - d安装
4,输入memcached。exe - d开始启动
配置成功
//MemCache常用的函数: Memcache:添加//添加一个值,如果已经存在,则返回错误的 Memcache: addServer//添加一个可供使用的服务器地址 Memcache:关闭//关闭一个Memcache对象 Memcache:://连接创建一个Memcache对象 memcache_debug//控制调试功能 Memcache:衰减//对保存的某中个关键的值进行减法操作 Memcache:删除//删除一个键值 Memcache:冲洗//清除所有缓存的数据 Memcache:://获取一个键值 Memcache: getExtendedStats//获取进程池中所有进程的运行系统统计 Memcache: getServerStatus//获取运行服务器的参数 Memcache: getStats//返回服务器的一些运行统计信息 Memcache: getVersion//返回运行的Memcache的版本信息 Memcache:://增量对保存的某中个关键的值进行加法操作 Memcache: pconnect//创建一个Memcache的持久连接对象 Memcache://替换对一个已有关键的进行覆写操作 Memcache:://添加一个值,如果已经存在,则覆写 Memcache: setCompressThreshold//对大于某一大小的数据进行压缩 Memcache: setServerParams//在运行时修改服务器的参数
二、安装php_memcache.dll扩展
1,首先下载符合你的php版本的php_memcache。dll扩展
地址:
http://pan.baidu.com/s/1skJnZIl
2,复制张贴在你的php/ext文件夹里
3,在php . ini中里面添加如下代码,导入扩展:
扩展=php_memcache.dll
三,yii里面的配置
1。如果你用的是基础框架:打开配置/web.php
如果你用的是高级框架:打开配置/主要。php
添加如下代码:
& # 39;缓存# 39;=比;( & # 39;类# 39;=比;& # 39;yii \缓存\ memcache # 39; & # 39;服务器# 39;=比;( ( & # 39;主机# 39;=比;& # 39;localhost # 39; & # 39;港口# 39;=比;11211年, & # 39;重量# 39;=比;One hundred. ), ( & # 39;主机# 39;=比;& # 39;localhost # 39; & # 39;港口# 39;=比;11211年, & # 39;重量# 39;=比;50, ), ), ],
现在就可以在你的控制器的操作方法中使用如下代码了:
//缓存MemCache $关键=& # 39;关键# 39;; 美元价值=https://www.yisu.com/zixun/'这是价值”;“代码”类Yii:: $缓存应用程序-> ->设置(键,美元价值); 回声“礼”; 回声Yii:: $缓存应用程序-> ->(键); 退出();& lt;/pre> & lt; pre>但是当你使用过期时间时即:
Yii::应用程序→美元缓存→设置(键,美元价值,6);//过期时间为6 回声“lixian"; 回声Yii:: $应用→→缓存(键); 退出();就输出不了的了,这是该框架自身的一个bug,解决办法如下:
在yii2使用memcache前根据文档配置好相应的参数,在使用memcache(非memcached)过程中会发现 Yii:: $应用→→缓存设置(& # 39;关键# 39;& # 39;价值# 39;); 当这句话没有设置有效时间为多少秒时,可以正常获取到缓存中键为键的值,但表示此关键不过期。
当设置了有效时间时, Yii:: $应用→→缓存设置(& # 39;关键# 39;& # 39;价值# 39;,60); 比如60秒,就会出现取不到关键对应的价值值,网上和论坛里搜了搜,没有找到解决办法,也有很多php遇到这类似的问题,所以特意去看了看底层代码,引用的memcache类为Yii2自带的yii \ \ memcache缓存, Yii:: $应用→→缓存设置(& # 39;关键# 39;& # 39;价值# 39;) 这句代码会自动调用memcache类下的setValue方法来设置缓存,所以问题也许就出现在这儿了。
Yii框架使用MemCache缓存的示例