假设您有一个显示最新帖子的页面片段,并且您在 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
”的重复,最好将其保存在一个地方。
想法?