Caching Yii缓存控制台应用程序和web应用程序之间的共享缓存?
我正在使用console应用程序为我的应用程序创建缓存。 但我无法为我的web应用共享该缓存。 (在我的redis数据库中,其显示是从控制台创建的)Caching Yii缓存控制台应用程序和web应用程序之间的共享缓存?,caching,yii,redis,Caching,Yii,Redis,我正在使用console应用程序为我的应用程序创建缓存。 但我无法为我的web应用共享该缓存。 (在我的redis数据库中,其显示是从控制台创建的) 知道如何将从控制台创建的缓存共享到我的web应用程序吗?前端配置文件: 'cache' => array( 'class' => 'system.caching.' . (!MW_DEBUG ? 'CFileCache' : 'CDummyCache'), 'keyPrefix' => md5('front
知道如何将从控制台创建的缓存共享到我的web应用程序吗?前端配置文件:
'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')),
),
控制台配置文件:
'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')),
),
我遇到了同样的问题,通过保持后端和前端两个应用程序的相同设置,问题得到了解决
'cache'=> array(
'class' => 'CRedisCache',
'hostname' => 'localhost',
'port' => 6379,
'database' => 0,
'hashKey' => false,
'keyPrefix' => '',
);
将keyPrefix设置为空,将hashKey设置为false
若对keyPrefix和hashKey使用默认设置,则CRedisCache将为set命令提供的相同值创建不同的键
例如
CRedisCache通过为每个请求的服务器使用hashKey和keyPrefix的组合来创建唯一的密钥 FWIW,实际上不需要将hashKey设置为false(实际上不应该)。只要确保控制台和web应用程序上的keyPrefix相同就足够了。