如何在多个请求中缓存Rails中的查询

时间:2010-04-12 14:23:42

标签: ruby-on-rails activerecord caching

我想缓存查询结果,以便“为多个请求”提取相同的结果,直到我使缓存无效。例如,我想渲染一个侧边栏,其中包含书籍的所有页面,就像书的索引一样。因为我想在书的每一页上显示它,我必须在每个请求上加载它。我可以使用动作缓存来缓存渲染的侧边栏索引,但我还想实际缓存用于生成侧边栏html的查询结果。 Rails提供了一种方法吗?我该怎么办?

2 个答案:

答案 0 :(得分:3)

您可以使用ActiveSupport's cache store缓存查询结果,如果您提供自己的实现,则可以通过内存存储(如memcached)或数据库存储进行备份。请注意,如果跨多个Ruby进程共享缓存,则需要使用数据库存储,如果要部署到Mongrel Cluster或Phusion Passenger,则会出现这种情况。

答案 1 :(得分:0)

您还可以在查询控制器中的数据库之前检查您的操作缓存。

相关问题