2014-03-13 9 views
11

gibt es einen Unterschied in der Leistung zwischenRails: cache.fetch vs cache.read/write

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

und

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

Wenn ich denke, ich muss die obere sagen würde nur eine Abkürzung ist für den anderen.

Antwort

13

Wenn Sie the source code überprüfen, werden Sie feststellen, dass fetch nichts mehr tut, als read und write anzurufen.

Da es einige andere Operationen (wie die Überprüfung, ob ein Block gegeben wurde, etc.) könnte man sagen, dass fetch ist schwerer, aber ich denke, es ist völlig zu vernachlässigen.