我正在使用控制台应用程序为我的应用程序创建缓存。 但我无法为我的网络应用共享该缓存。 (在我的redis数据库中显示从控制台创建) 任何想法如何共享从控制台创建的缓存到我的web应用程序?Yii缓存控制台应用程序和Web应用程序之间的共享缓存?
1
A
回答
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')),
),
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. Tomcat Web应用程序之间的共享缓存
- 2. 如何在两个ASP.NET应用程序之间共享应用程序缓存
- 3. 缓存Web应用程序
- 4. 在asp.net应用程序和web服务应用程序之间的asp.net缓存共享/失效
- 5. 在MVC和WCF应用程序中共享ASP.Net应用程序缓存
- 6. 如何在GTK应用程序(或GTK和控制台应用程序)之间共享内存?
- 7. 需要在C++,Java和.Net应用程序之间共享的缓存
- 8. C#控制台应用程序之间的共享功能
- 9. SQLite缓存与应用程序缓存
- 10. 使用缓存控制标题的离线web应用程序?
- 11. C#控制台应用程序与ASP.NET WebForms应用程序之间的共享存储器
- 12. 在Web应用程序和控制台应用程序之间共享配置设置
- 13. 在控制台应用程序和asp.net web应用程序之间共享配置
- 14. 在web应用程序共享内存
- 15. 两个Web应用程序之间的缓存失效
- 16. 控制台应用程序中的ASP.NET缓存?
- 17. 在asp.net web应用程序中缓存
- 18. Web应用程序缓存更新
- 19. Web应用程序会话缓存
- 20. Web应用程序从缓存中
- 21. 在Java中缓存web应用程序
- 22. Web应用程序更新:缓存旧应用程序
- 23. 缓存应用程序块
- 24. 应用程序缓存html5
- 25. 在同一物理机器上的应用程序(asp.net)之间共享缓存
- 26. Azure Active Directory令牌缓存C#控制台应用程序
- 27. 如何使用ContentProvider与应用程序缓存共享图像
- 28. iPhone脱机Web应用程序和Safari共享相同的HTML5应用程序缓存吗?
- 29. 在应用程序打开/关闭之间缓存WebBrowser控件
- 30. 在多个应用程序之间共享企业库数据库缓存
FWIW,你不需要真正将hashKey设置为false(实际上你不应该)。只要确保keyPrefix在控制台和Web应用程序上都相同就足够了。 – pkid169