Rails:cache.fetch vs cache.read/write

时间:2014-03-13 12:47:50

标签: ruby-on-rails caching

之间是否有任何性能差异
Rails.cache.fetch("key") { Model.all }

models = Rails.cache.read("key")
if models.nil?
    models = Model.all
    Rails.cache.write("key", models)
end

如果我必须猜测,我会说上面的只是另一个的缩写。

1 个答案:

答案 0 :(得分:17)

如果您选中the source code,您会注意到fetch只会致电readwrite

由于它执行了一些其他操作(比如检查是否已经给出了块等),可以说fetch更重,但我认为它完全可以忽略不计。