rails中基于文件的缓存的文档说:
请注意,除非您,否则缓存将增长,直到磁盘已满 定期清除旧条目。
不幸的是,它没有提供有关如何定期清除旧条目的任何信息。为:expires_in
设置合适的值是否可以完成这项工作,还是在清除缓存后还有其他一些黑魔法?
此外,该文档提供了一个限制基于内存的缓存大小的选项:
config.cache_store = :memory_store, { size: 64.megabytes }
这是否也适用于基于文件的缓存?更重要的是,当缓存增长低于该大小限制时会发生什么?它是删除旧的缓存值还是会抛出某种异常?
提前谢谢, danijoo答案 0 :(得分:5)
尝试使用FileStore缓存我发现:expires_in
选项有效,但:size
没有。
如果要指定选项,则还需要指定路径,请尝试以下示例:
config.cache_store =:file_store,Rails.root.join(' tmp',' cache'),{expires_in:1.minute}
将代码放入config/application.rb
并记住在config/environments/development.rb
中激活缓存并重新启动应用。
P.S。我用1分钟轻松做一个快速测试。
答案 1 :(得分:2)
是限制也适用于基于文件的缓存。并且是 :expires_in
的值将完成这项工作。
达到此限制时,不会缓存其他内容。没有例外。