【发布时间】:2016-04-15 21:09:48
【问题描述】:
我正在使用控制台应用程序为我的应用程序创建缓存。 但我无法为我的网络应用程序共享该缓存。 (在我的 redis 数据库中,它的显示是从控制台创建的) 知道如何将控制台创建的缓存共享到我的网络应用程序吗?
【问题讨论】:
我正在使用控制台应用程序为我的应用程序创建缓存。 但我无法为我的网络应用程序共享该缓存。 (在我的 redis 数据库中,它的显示是从控制台创建的) 知道如何将控制台创建的缓存共享到我的网络应用程序吗?
【问题讨论】:
我遇到了同样的问题,通过为后端和前端两个应用程序保持相同的设置得到了解决。
'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 的组合为每个请求的服务器创建唯一键。
【讨论】:
前端配置文件:
'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')),
),
【讨论】: