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

nine · October 13, 2015 · Last by hging replied at October 13, 2015 · 2516 hits
@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 哦哦。这样。明白了~~

You need to Sign in before reply, if you don't have an account, please Sign up first.