我知道dalli
(缓存)对于提高静态站点的性能非常有用。
但是,经常更新的动态网站呢?
设置dalli
的正确方法是什么?
例如,我遇到的一个问题:使用分页时,dalli
将不同的参数[:p age]识别为同一页面:(
当两者使用dalli
时,你们将如何设计系统
- 经常更新的页面
- 不会经常更新的页面
我当前的代码就是这样。这就是为什么我在使用缓存时面临分页问题的原因......
控制器
caches_page :index, :show
config/environment/development.rb
config.consider_all_requests_local = true
config.action_controller.perform_caching = true
config.cache_store = :dalli_store
我遇到了同样的问题,并决定在视图中进行片段缓存是更好的选择。
片段的缓存键基于模型,每次更新模型时都会更改。
以下是我在哈姆尔的一个观点的摘录。
- @content_pages.each do |content_page|
- cache(content_page.get_cache_key('home_page_content_page')) do
...Render ContentPage model
它基于37Signals在这里推荐的方法基于密钥的缓存过期的工作原理
我在我的网站上有关于该方法的完整文章
这里使用基于键的方法的 Rails 缓存策略
希望这有帮助