2013-03-20 56 views
6

我一直在努力寻找是否有一些由Rails设置的默认过期时间,以防我们不提供任何将键值对存储到memcache的时间? 例如Rails.cache.write(“一些键”,“某些价值”)Rails memcache存储默认自动过期时间

轨会缺省设置一些到期时间,如果没有指定我们?

回答

5

如果您使用的是默认,内置MemCacheStore类由Rails的提供,则没有。当您创建新的缓存条目时,它不会假定到期时间。您可以read the applicable code来验证。它检查,看看你是否已经通过一个expires_in选项将#write方法类似

Rails.cache.write("key", "content", expires_in: 2.hours) 

,如果你还没有,只是将0至MEMCACHE表示没有到期时间。希望这可以帮助!

5

如果您使用的是较新的(我认为更好)Dalli memcached的宝石,你可以在适配器级使用如下行进行配置:

config.cache_store = :dalli_store, 'cache-1.example.com', 'cache-2.example.com', 
    { :namespace => NAME_OF_RAILS_APP, :expires_in => 1.day} 

README进行详细解说的:expires_in选项。总的来说,我认为达利是值得一试的不仅仅是此功能的更多,它也快,并且支持一些较新的认证功能等

+0

良好的通话。 'MemCacheStore'只是一个瘦包装过达利,毕竟。 – piersadrian 2013-03-20 06:48:58