Ruby on rails Rails:控制文件存储缓存大小

Ruby on rails Rails:控制文件存储缓存大小,ruby-on-rails,ruby,ruby-on-rails-3,caching,Ruby On Rails,Ruby,Ruby On Rails 3,Caching,rails中基于文件的缓存的文档说明: 请注意,除非执行以下操作,否则缓存将一直增长,直到磁盘已满 定期清除旧条目 不幸的是,它没有提供任何关于如何定期清除旧条目的信息。在中为:expires\u设置一个合适的值是否可以完成这项工作,或者在清除缓存之后是否存在其他类型的黑魔法 此外,文档还提供了一个选项来限制基于内存的缓存的大小: config.cache_store = :memory_store, { size: 64.megabytes } 这是否也适用于基于文件的缓存?更重要的是,当缓

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

请注意,除非执行以下操作,否则缓存将一直增长,直到磁盘已满 定期清除旧条目

不幸的是,它没有提供任何关于如何定期清除旧条目的信息。在中为
:expires\u设置一个合适的值是否可以完成这项工作,或者在清除缓存之后是否存在其他类型的黑魔法

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

config.cache_store = :memory_store, { size: 64.megabytes }
这是否也适用于基于文件的缓存?更重要的是,当缓存增长到该大小限制以下时会发生什么?它是删除旧的缓存值还是抛出某种异常

提前感谢,, danijoo

是,该限制也适用于基于文件的缓存。是的,
中的expires\u的值将执行此任务


当达到此限制时,将不再缓存其他内容。没有引发异常。

在试验文件存储缓存时,我发现选项中的
:expires\u有效,但
:size
一个无效

如果要指定选项,则还需要指定路径,请尝试以下示例:

config.cache\u store=:file\u store,Rails.root.join('tmp','cache'),{expires\u in:1.minute}

将代码放入
config/application.rb
中,记住激活
config/environments/development.rb中的缓存,然后重新启动应用程序

另外,我用1分钟轻松地做一个快速测试