【发布时间】:2010-11-05 07:34:09
【问题描述】:
假设您有一个显示最新帖子的页面片段,您将在 30 分钟后将其过期。我在这里使用 Rails。
<% cache("recent_posts", :expires_in => 30.minutes) do %>
...
<% end %>
如果片段存在,显然您不需要进行数据库查找来获取最新帖子,因此您也应该能够避免这种开销。
我现在在控制器中做的是这样的事情,似乎可以工作:
unless Rails.cache.exist? "views/recent_posts"
@posts = Post.find(:all, :limit=>20, :order=>"updated_at DESC")
end
这是最好的方法吗?安全吗?
我不明白的一件事是为什么片段的密钥是“recent_posts”,稍后检查时是“views/recent_posts”,但我在看了memcached -vv 后想出了这个,看看它在使用什么.另外,我不喜欢手动输入“recent_posts”的重复,最好把它放在一个地方。
想法?
【问题讨论】:
标签: ruby-on-rails ruby caching memcached fragment