我一直在努力找出 Rails 是否设置了一些默认过期时间,以防我们在将键值对存储到内存缓存时不提供任何时间?例如 Rails.cache.write('some-key', 'some-value')
如果我们没有指定,rails 会默认设置一些过期时间吗?
我一直在努力找出 Rails 是否设置了一些默认过期时间,以防我们在将键值对存储到内存缓存时不提供任何时间?例如 Rails.cache.write('some-key', 'some-value')
如果我们没有指定,rails 会默认设置一些过期时间吗?
如果您使用的是较新的(我认为更好)Dalli memcached gem,您可以使用如下行在适配器级别配置它:
config.cache_store = :dalli_store, 'cache-1.example.com', 'cache-2.example.com',
{ :namespace => NAME_OF_RAILS_APP, :expires_in => 1.day}
有关该选项的详细说明,请参阅自述文件。:expires_in
总的来说,我认为 Dalli 值得一试的不仅仅是这个功能,它还更快,并且支持一些更新的身份验证功能等。
MemCacheStore
如果您使用Rails 提供的默认内置类,则不需要。当您创建新的缓存条目时,它不会假定到期时间。您可以阅读适用的代码来验证这一点。它检查您是否已将expires_in
选项传递给#write
方法,例如
Rails.cache.write("key", "content", expires_in: 2.hours)
如果没有,只需将 0 传递给 memcache,表示没有到期时间。希望这可以帮助!