如何在YII框架中使用memcache

  介绍

这篇文章给大家介绍如何在YII框架中使用memcache,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

<强>一。配置

在主要。php的组件中加入缓存配置

阵列(   & # 39;才能组件# 39;=祝辞阵列(   ,,,& # 39;缓存# 39;=祝辞阵列(   ,,,,,& # 39;类# 39;=祝辞& # 39;CMemCache& # 39;   ,,,,,& # 39;服务器# 39;=祝辞阵列(   ,,,,,,,阵列(   ,,,,,,,,,& # 39;主机# 39;=祝辞& # 39;server1 # 39;   ,,,,,,,,,& # 39;港口# 39;=祝辞;11211年,   ,,,,,,,,,& # 39;重量# 39;=在60岁   ,,,,,,,),   ,,,,,,,阵列(   ,,,,,,,,,& # 39;主机# 39;=祝辞& # 39;server2 # 39;   ,,,,,,,,,& # 39;港口# 39;=祝辞;11211年,   ,,,,,,,,,& # 39;重量# 39;=祝辞;40岁   ,,,,,,,),   ,,,,,),   ,,,),   ),才能   )

说明:

1)类指明所有缓存类,CMemCache即为memcache
2)当要使用多个缓存轮询时,可以给每个缓存配权重(体重)。如果只有一个缓存,不加这个配置就可以了。

<强>二。使用

调用memcache的方法也很简单

key 美元;=,& # 39;人民# 39;;   value 美元;=,json_encode(阵列(& # 39;名字# 39;=祝辞& # 39;球# 39;,,& # 39;年龄# 39;=祝辞& # 39;男性# 39;));   时间=美元expire  10;   yii:应用()→→缓存设置(键,美元,美元价值,到期美元);   Yii:应用()→→缓存(键);   Yii:应用()→→缓存删除(键)美元;

更多api请参阅Yii手册CMemCache部分。

<强>三。问题

当你统一使用yii的扩展对memcache进行存取时,不会有什么问题。但现实中会有这么一种情况:你在使用yii开发后台,但前台的同学并未用yii,而是使用了原生的memcache api对数据进行操作。这时会遇到一些问题。

如上文二中的例子,你会发现,如果使用原生的memcache api, memcache::,用人们作关键是取不到值的!

原因是,yii的设置对键和值都做了处理。默认情况下,对关键加前缀并做md5变换,对值进行序列化()。这就难怪使用memcache::获得(& # 39;人民# 39;)取不到值了。

解决:

简单的方法,可以通过配置,让yii的memcache扩展不进行额外的“小动作“。

& # 39;缓存# 39;,=祝辞,阵列(   & # 39;才能类# 39;,=祝辞,& # 39;system.caching.CMemCache& # 39;   & # 39;才能服务器# 39;,=祝辞,数组(,数组(& # 39;主机# 39;,=祝辞,& # 39;127.0.0.1 # 39;,,& # 39;港口# 39;,=祝辞,11211)),   & # 39;才能keyPrefix& # 39;,=祝辞,& # 39;& # 39;   & # 39;才能hashKey& # 39;,=祝辞,假的,   & # 39;才能序列化器# 39;,=祝辞,false)

其中:

keyPrefix:关键的前缀,默认用CApplication:: getId()方法生成。
hashKey:对关键进行散列操作,默认md5
序列化器:值的序列化方法,默认序列化

将这些都置空,扩展的行为就同原生Memcache一致了。

<强>四。更多memcache方法调用

yii的扩展中,只有memcache的最常用操作,并没有类似原生memcache的递减和递增等操作。如果想要作用这些方法怎么办呢?可以使用扩展中的getMemCache方法获得原生memcache对像,然后就可以使用原生方法了。

mem 美元;=,yii:应用()→缓存→getMemCache ();   res 美元;=,mem→美元减量(键)美元;

使用原生方法时,最好设置上文(三)中提到的配置,不然同时使用yii的扩展方法和memcache的原生方法会带来麻烦。

关于如何在yii框架中使用memcache就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

如何在YII框架中使用memcache