2014-03-13 1 views
11

대 cache.fetch 내가, 내가 위 한 단지 속기 말을 생각해야합니다레일 : cache.read/write

Rails.cache.fetch("key") { Model.all } 

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

사이의 성능 차이가있다 다른 하나.

답변

13

the source code을 확인하면 fetchreadwrite을 호출하는 것 외에는 아무것도 수행하지 않습니다.

(블록이 주어 졌는지 확인하는 것과 같은) 다른 작업을 수행하기 때문에 fetch이 더 무겁다고 말할 수는 있지만 완전히 무시할 만합니다.