【问题标题】:Rails: control file store cache sizeRails:控制文件存储缓存大小
【发布时间】:2014-04-15 12:55:23
【问题描述】:
rails 中基于文件的缓存的文档说:
请注意,缓存会增长直到磁盘已满,除非您
定期清除旧条目。
不幸的是,它没有提供有关如何定期清除旧条目的任何信息。为:expires_in 设置一个适当的值是否可以完成这项工作,还是在清除缓存背后有其他某种黑魔法?
此外,文档还提供了限制基于内存的缓存大小的选项:
config.cache_store = :memory_store, { size: 64.megabytes }
这也适用于基于文件的缓存吗?更重要的是,当缓存增长低于该大小限制时会发生什么?它会删除旧的缓存值还是会引发某种异常?
提前致谢,
danjoo
【问题讨论】:
标签:
ruby-on-rails
ruby
ruby-on-rails-3
caching
【解决方案1】:
是限制也适用于基于文件的缓存。 是的:expires_in 的值将完成这项工作。
达到此限制后,将不再缓存任何内容。不抛出异常。
【解决方案2】:
在使用 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中的缓存并重启应用。
附:我用 1 分钟轻松完成快速测试。