我有一個網站,我正在實施一些緩存。Rails碎片緩存策略
在可能的情況下,我已經使用了動作緩存,並且我已經有了清理器來在創建/更新模型時終止必要的操作。
在這一受到caches_action
的意見我也片段緩存一些諧音,使內部分我有類似:
<% cache('video_content') do %>
Some content here
<% end %>
在我video_sweeper
我試圖終止該片段用:
expire_fragment('video_content')
雖然這個片段沒有過期。
因爲我已經使用caches_action
,是由於某種原因被忽略的片段?即我是否需要在使用caches_action
或片段緩存之間做出選擇?
如果是這種情況,我需要將每個動作視圖到期,這部分出現在這意味着我的清掃人員會變得非常複雜,更不用說維護頭痛了。
所以我的問題很大程度上是爲什麼我的分段緩存在我的清掃器中調用時會失效,是因爲我也使用了caches_action
?
更新: 進一步挖掘到我的日誌中,我實際上可以看到清掃工正在過期我的片段。
Expire fragment views/video_content (0.7ms)
但是,在到期之前在控制檯中玩耍,片段似乎不存在。
ruby-1.9.2-p136 :004 > Rails.cache.exist?('views/video_content')
=> false
同樣,這讓我覺得,因爲我使用caches_action
,部分很少會被擊中,當行動到期除非,被緩存。
感謝您的回答。將檢查出這些視頻,非常感謝您的支持。 – Pete 2012-03-30 09:32:34