片段缓存

由 ActiveSupport 提供的 Rails.cache 可用于跨请求缓存任何可序列化的 Ruby 对象。

要从缓存中获取给定键的值,请使用 cache.read

Rails.cache.read('city')
# => nil

使用 cache.write 将值写入缓存:

Rails.cache.write('city', 'Duckburgh')
Rails.cache.read('city')
# => 'Duckburgh'

或者,使用 cache.fetch 从缓存中读取值,如果没有值,则可以选择写入默认值:

Rails.cache.fetch('user') do
  User.where(:is_awesome => true)
end

传递的块的返回值将分配给给定键下的缓存,然后返回。

你还可以指定缓存过期时间:

Rails.cache.fetch('user', :expires_in => 30.minutes) do
  User.where(:is_awesome => true)
end