我正在使用控制檯應用程序爲我的應用程序創建緩存。 但我無法爲我的網絡應用共享該緩存。 (在我的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