Rails: cache.fetch vs 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
Если я должен догадаться, я бы сказал, что верхний является просто сокращением для другого.
Ответы
Ответ 1
Если вы проверите исходный код, вы заметите, что fetch
делает не что иное, как вызов read
и write
.
Так как он выполняет некоторые другие операции (например, проверяет, был ли предоставлен блок и т.д.), можно сказать, что fetch
более тяжелый, но я думаю, что он абсолютно ничтожен.