使用Rails中的memcache来缓存对象

    • Page Cache

 

    • Action Cache

 

    Fragment Cache

当我说“不是什么或者,只是想普通地存储对象”时。

gem 'dalli'
config.cache_store = :dalli_store

作为以下的使用方式。

Rails.cache.read("key")   # => nil
Rails.cache.write("key", [1,2,3], expires_in: 1.hour)  # 1時間で消える。
Rails.cache.read("key")   # => [1, 2, 3]

将键值key设为符号也是可以的。

当我们真正使用的时候

hoge = Rails.cache.read("hoge_key")
if hoge.nil?
  hoge = get_hoge_value(xxx)
  Rails.cache.write("hoge_key", hoge, expires_in: 1.hour)
end

应该会变成那种感觉。
使用fetch,可以这样写成以下形式。

hoge = Rails.cache.fetch("hoge_key", expires_in: 1.hour) do
  get_hoge_value(xxx)
end

应该只使用这个基本方法。

如果在write或fetch的选项中传递compress: true,它将压缩数据。虽然编码/解码可能需要时间,但由于通信量减少,结果速度会更快。
事实上,默认情况下似乎设置了16K的compress_threshold,所以只要原始数据没有被压缩,就应该使用它。

请以此为参考

http://api.rubyonrails.org/classes/ActiveSupport/Cache/Store.html
http://guides.rubyonrails.org/caching_with_rails.html

以下是网址链接:
1. http://api.rubyonrails.org/classes/ActiveSupport/Cache/Store.html
2. http://guides.rubyonrails.org/caching_with_rails.html

bannerAds