如何缓存我的所有查询。
第一次请求:
@user = User.all
第二次请求
@user = User.all # Cached
有没有有用的插件可以做到这一点?
我正在制作模式。我似乎无法看到任何缓存的短语来确认我的rails应用程序正在缓存。
答案 0 :(得分:0)
config.action_controller.perform_caching = true
默认情况下,禁用缓存进行开发和测试,并启用生产。
查询缓存是一种Rails功能,它缓存每个查询返回的结果集,这样如果Rails再次遇到该请求的相同查询,它将使用缓存的结果集,而不是再次对数据库运行查询。 / p>
例如:
class UsersController < ActionController def index # Run a find query @users = User.all ... # Run the same query again @users = User.all end end
第二次对数据库运行相同的查询时,它实际上不会命中数据库。第一次从查询返回结果时,它将存储在查询缓存中(在内存中),第二次从内存中提取。
在您的控制台上查看
用户加载(?ms)SELECT
User
。* FROMUser
完成200 OK in?ms(视图:?ms | ActiveRecord:?ms)
您可以将其与首次加载和第二次加载进行比较。
您可以使用https://github.com/mperham/dalli中的Dalli gem将缓存存储到memcached服务器。