Rails缓存仅在设置到期时有效?

时间:2014-02-26 09:40:15

标签: ruby-on-rails ruby-on-rails-3 caching memcached

只是想知道为什么你必须设置缓存到期才能在控制台中工作? 显然leaving it out,它永远不会过期 - 但我无法让它发挥作用?如果我没有设置到期日,则不会返回密钥。

1.9.3p392 :014 > Rails.cache.write "foo", "bar"
1.9.3p392 :015 > Rails.cache.read "foo"
 => nil 
1.9.3p392 :016 > 
1.9.3p392 :017 > Rails.cache.write "foo", "bar", :expires_in => 3.hours
 => true 
1.9.3p392 :018 > 
1.9.3p392 :019 > Rails.cache.read "foo"
 => "bar" 

1 个答案:

答案 0 :(得分:0)

发现从cache_store配置中删除“expires_at”就可以了。我不需要设置一个到期日,因为memcache会在它充满时清除最旧的等等(根据俄语玩偶缓存)。

config.cache_store = :dalli_store, '127.0.0.1:11211', { :namespace => 'blah', :expires_in => 3.months, :compress => true }

变为

config.cache_store = :dalli_store, '127.0.0.1:11211', { :namespace => 'blah', :compress => true }