2013-09-26 91 views

回答

0

前端配置文件:

'cache' => array(
    'class'  => 'system.caching.' . (!MW_DEBUG ? 'CFileCache' : 'CDummyCache'), 
    'keyPrefix' => md5('frontend.' . MW_VERSION . Yii::getPathOfAlias('frontend')), 
), 

控制檯配置文件:

'cache' => array(
    'class'  => 'system.caching.' . (!MW_DEBUG ? 'CFileCache' : 'CDummyCache'), 
    'keyPrefix' => md5('console.' . MW_VERSION . Yii::getPathOfAlias('backend')), 
), 

reference answer

3

我得到同樣的問題,這是通過保持相同的設置爲後端和前端這兩個應用解決。

'cache'=> array(
    'class' => 'CRedisCache', 
    'hostname' => 'localhost', 
    'port' => 6379, 
    'database' => 0, 
    'hashKey' => false, 
    'keyPrefix' => '', 
); 

集keyPrefix空和hashKey爲false,

如果您使用keyPrefix和hashKey CRedisCache默認設置會造成從set命令 如提供相同的值不同的密鑰。

Yii::app()->cache->set('foo', 'bar'); frontend server 
will create key in redis something like "0327f5f7378e9056c775ab69aa206322" 

    Yii::app()->cache->set('foo', 'bar'); backend server 
ll create key in redis something like "d2c81df2db2285435c1975b5cb5c5b66"  

CRedisCache通過對每個請求的服務器使用hashKey和keyPrefix的組合來創建唯一密鑰。

+1

FWIW,你不需要真正將hashKey設置爲false(實際上你不應該)。只要確保keyPrefix在控制檯和Web應用程序上都相同就足夠了。 – pkid169

相關問題