zoukankan      html  css  js  c++  java
  • yii redies 不同的工程缓存key的问题

    参考这篇文章

    基本配置操作:

    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();
        }
  • 相关阅读:
    前端每周学习分享--第7期
    前端每周学习分享--第5期
    博客迁移声明
    使用Angular CLI创建Angular 2项目
    使用Gulp压缩CSS/JS
    [JS]继承方式总结
    [JS]算法总结
    圆梦之旅 – 日本(一)攻略篇
    新年畅想
    [CSS]三栏自适应布局
  • 原文地址:https://www.cnblogs.com/likwo/p/5695353.html
Copyright © 2011-2022 走看看