如何为具有大量内容更新的动态页面设置dalli?

时间:2013-01-26 17:32:12

标签: ruby-on-rails ruby-on-rails-3 dalli

我知道dalli(缓存)对于增强静态网站的性能非常有用 但是动态网站又经常更新呢? 设置dalli的正确方法是什么?

我遇到的一个问题例如:dalli在使用分页时将不同的参数[:page]识别为同一页面:(

如果将dalli用于

,您将如何设计系统?
  • 经常更新的页面
  • 不经常更新的页面

我目前的代码就像这样。这就是我在使用缓存时面临分页问题的原因......

控制器

caches_page :index, :show

配置/环境/ development.rb

config.consider_all_requests_local       = true
config.action_controller.perform_caching = true
config.cache_store = :dalli_store

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,并认为视图中的片段缓存是更好的选择。

片段的缓存键基于模型,每次更新模型时都会更改。

以下是我在haml中的一个观点的摘录。

 - @content_pages.each do |content_page|
          - cache(content_page.get_cache_key('home_page_content_page')) do
            ...Render ContentPage model

这是基于37Signals推荐的方法 How key-based cache expiration works

我在这里的网站上全面写了这个方法

Rails caching strategy using key-based approach

希望这有帮助