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 более тяжелый, но я думаю, что он абсолютно ничтожен.