我已经做了一些谷歌搜索,但找不到这个问题的答案。 Rails 允许为其缓存指定过期时间,如下所示:
Rails.cache.fetch("my_var", :expires_in => 10.seconds)
但是如果我什么都不指定会发生什么:
Rails.cache.fetch("my_var")
它永远不会过期吗?有默认值吗?我如何明确定义永不过期的东西?
这实际上取决于您使用的缓存存储。 Rails 提供了几种,其中最受欢迎的是内存缓存 http://guides.rubyonrails.org/caching_with_rails.html#activesupport-cache-memcachestore。 Memcached 的关键特性之一是自动使旧的未使用记录过期 https://github.com/memcached/memcached/wiki/Overview#forgetting-is-a-feature,这样你就可以忘记 :expire 选项。
其他 Rails 缓存存储(例如内存存储或 Redis 存储)将保留不会过期日期,除非您明确指定何时执行此操作。
有关 Rails 中缓存键过期如何工作的更多信息。 http://37signals.com/svn/posts/3113-how-key-based-cache-expiration-works
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)