我知道我可以在config.yml文件中爲DoctrineCacheBundle設置多個名稱空間。但是,我可以使用一個驅動程序,但有多個命名空間嗎?如何在DoctrineCacheBundle cacheDriver中使用多個名稱空間?
這種情況是,在我的應用程序,我想緩存所有我的實體的所有查詢。問題是在創建/更新操作時刷新緩存。我只想刷新部分緩存查詢。我的應用程序被多個客戶端使用。因此,當客戶端更新某些數據時,例如在Article實體中,我只想爲此客戶端僅爲條目清除緩存。我可以爲每個查詢添加適當的ID並手動刪除它們,但查詢是動態使用的。在我的API移動應用程序發送數據庫應該返回數據的版本號,所以我不知道最終會使用什麼樣的ID。
所以你的意思是使用例如SncRedisBundle,其配置爲通過DoctrineCacheBundle爲metadata_cache,RESULT_CACHE,query_cache然後在控制器同時使查詢中使用,使用$ cache = $ this-> container-> get('redis_cache')來緩存它; $ cache-> save('article_1',$ article);然後將這些密鑰保存到KEY到Redis?像$ redis-> append('client_1','article_1'); 然後當進行更新時,只需使用$ redis-> delete(array('key3','key4'))刪除正確的密鑰; ? – Tom
就是這樣,是的。我不知道你是否想要結果緩存。我遇到了一些問題。我只使用元緩存,查詢緩存,並且我自己負責結果緩存。 –