9
我正在使用redis-rails。對於緩存鍵我使用一個數組:rails如何使用部分匹配刪除緩存鍵
Rails.cache.fetch([self.class.name, :translated_attribute, id, field, I18n.locale]) do
self.read_attribute field, locale: I18n.locale
end
現在我需要刪除所有與密鑰相匹配的緩存與[self.class.name,:translated_attribute,ID]。我知道它有delete_matched
,它採用通配符(*)作爲部分匹配的關鍵字。
但我不知道什麼是確切的關鍵生成。現在我需要知道當我們使用數組作爲關鍵時它是如何產生密鑰的。我的意思是如果我使用[:foo,:bar,:dum]作爲緩存鍵,那麼緩存存儲中的確切鍵是什麼?
這不適用於作爲數據存儲的memcache。任何其他選項? –
注意在生產中使用'delete_matched': '''性能說明:這個操作對於大型生產數據庫可能是危險的,因爲它使用Redis的「KEYS」命令,這個命令是O(N)在數據庫中。大型Redis緩存的用戶應該避免使用這種方法.''' http://www.rubydoc.info/gems/redis-activesupport/4.0.0/ActiveSupport%2FCache%2FRedisStore:delete_matched – DFish