0
我有一個Rails應用程序,其數據庫從外部C++程序更新。我想加快使用片段緩存的應用程序,但是當記錄更新時,相應的片段緩存條目需要過期。有任何想法嗎?從外部應用程序過期Rails分段緩存
我有一個Rails應用程序,其數據庫從外部C++程序更新。我想加快使用片段緩存的應用程序,但是當記錄更新時,相應的片段緩存條目需要過期。有任何想法嗎?從外部應用程序過期Rails分段緩存
如果C++應用程序直接與數據庫對話,則可以使用片段緩存與cache_key的組合。
它很容易和內置在Rails中。您所要做的就是確保您的C++應用程序在主記錄內容更新時更新記錄的updated_at字段。 然後,您可以將片段的範圍限制爲記錄對象,並且記錄更改時緩存會自動過期。
<% cache [@article, :metadata] do %>
here the content to be cached
for example the <%= @article.title %>.
:metadata is simply a name for this fragment.
<% end %>
假設@article記錄被保存在2010-02-10 18:00:00,該片段將在/path/to/cache/.../24-20100210180000
被緩存。當C++更新記錄並更改updated_at列時,緩存將失效並且下一個請求會再次自動點擊內容。
有關緩存的更多信息,請查看http://railslab.newrelic.com/scaling-rails