Rails:控制文件存储缓存大小

时间:2014-03-11 18:38:40

标签: ruby-on-rails ruby ruby-on-rails-3 caching

rails中基于文件的缓存的文档说:

  

请注意,除非您,否则缓存将增长,直到磁盘已满   定期清除旧条目。

不幸的是,它没有提供有关如何定期清除旧条目的任何信息。为:expires_in设置合适的值是否可以完成这项工作,还是在清除缓存后还有其他一些黑魔法?

此外,该文档提供了一个限制基于内存的缓存大小的选项:

config.cache_store = :memory_store, { size: 64.megabytes }

这是否也适用于基于文件的缓存?更重要的是,当缓存增长低于该大小限制时会发生什么?它是删除旧的缓存值还是会抛出某种异常?

提前谢谢, danijoo

2 个答案:

答案 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的值将完成这项工作。

达到此限制时,不会缓存其他内容。没有例外。