Yii框架使用MemCache缓存的示例

  介绍

这篇文章将为大家详细讲解有关Yii框架使用MemCache缓存的示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

具体操作如下所示:

一、配置MemCache服务器服务器

1,下载memcached软件包,下载地址:

http://pan.baidu.com/s/1boAnghp

解压,把memcached.exe放到随意一个地方,比如:d:/memcached/下(我解压到了我的wampserver的本目录下与php目录同级)。

2, windows + R快捷键输入cmd,在命令行中输入一下代码,切换到MemCache。exe的目录下:

 Yii框架使用MemCache缓存的示例

3,输入如下代码安装MemCache。exe: memcached。exe - d安装

 Yii框架使用MemCache缓存的示例

4,输入memcached。exe - d开始启动

 Yii框架使用MemCache缓存的示例

配置成功

//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缓存的示例