我正在使用控制台应用为我的应用创建缓存。 但我无法为我的网络应用程序共享该缓存。 (在我的redis数据库中显示从控制台创建) 任何想法如何将从控制台创建的缓存共享到我的网络应用程序?
答案 0 :(得分:3)
我遇到了同样的问题,通过为后端和前端两个应用保持相同的设置来解决。
'cache'=> array(
'class' => 'CRedisCache',
'hostname' => 'localhost',
'port' => 6379,
'database' => 0,
'hashKey' => false,
'keyPrefix' => '',
);
将keyPrefix设置为empty,将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 :(得分: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')),
),