Rails Rails.cache.fetch 不可以缓存对象集合的么?

nine · 2015年10月13日 · 最后由 hging 回复于 2015年10月13日 · 2523 次阅读
@cates = Rails.cache.fetch :cates do 
  Cate.all 
end

而单个对象是可以的 真奇怪

Rails 版本 4.2.4

try

@cates = Rails.cache.fetch :cates do 
  Cate.all.to_a
end

可以缓存,但是不建议这么干。

但是数据量大时(比如几千个 Cate 的数据),一堆 ActiveRedocrd 对象的 序列化/反序列化 非常的耗时,不划算。

自己做个测试试试。

#1 楼 @libuchao 3x~ 搞定,原来如此

#2 楼 @xiaoronglv 3x~,只是示例代码,一般都是带 limit 的,比如 Article.limit(10) 这类的,不 to_a 没法缓存啊。有空我会做下测试。

我记得就算你不加 cache 默认 active record 也会给你 cache 的吧。

#4 楼 @hging 我说的不是 ActiveRecord 的,一次 http 请求内的 SQL 查询缓存。 是放到 redis 里的那种。

#5 楼 @nine 哦哦。这样。明白了~~

需要 登录 后方可回复, 如果你还没有账号请 注册新账号