博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

参考这篇文章

基本配置操作:

yii main.php中:

return array(
 
...
 
'components'=>array(
 
'redis_cache' => array (
'class' => 'system.caching.CRedisCache',
'hostname' =>'127.0.0.1',
'port' => 6379,
'password'=>'123456',
'database'=>1
),
 
)
 
...
 
)

  

其中:
class中的CRedisCache是Redis的官方插件;
如果设置了密码需要password项;
database制定对应的数据库

调用操作:
$r_key = “key”;
Yii::app()->redis_cache->set($r_key, 99999);
echo Yii::app()->redis_cache->get($r_key);

但是在Redis数据库中并未发现名为“key”的键值,是因为yii的redis插件默认对key会进行md5加密。
通过查看CRedisCahce的父类CCache可以知道在CRedisCache.php中需要声明以下两个变量:

public $hashKey = false;
public $keyPrefix = "";

  

即可解决问题。

另外,如果遇到中文乱码不能查看的问题,是因为Redis数据库默认ANSIC编码,输入命令是请使用:
./redis-cli –raw -h 127.0.0.1
连接即可。

官方文档请查看:http://www.yiiframework.com/doc/api/1.1/CRedisCache/

 

参考这篇文章虽然能解决cache 的问题,但是影响了所有的缓存问题,因为只需要在影响公用缓存部分起作用,其它的不起作用,所以

可以在CRedisCache的init做如下修改

    public function init()
    {
        //不用md5的key
        //
        $this->keyPrefix = '';
        $this->hashKey = false;

        parent::init();
               $this->getRedis();
    }

 

posted on 2016-07-22 15:28  Likwo  阅读(592)  评论(0编辑  收藏  举报