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

dan*_*joo 7 ruby caching ruby-on-rails ruby-on-rails-3

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

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

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

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

config.cache_store = :memory_store, { size: 64.megabytes }
Run Code Online (Sandbox Code Playgroud)

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

提前谢谢,danijoo

Mau*_*ola 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并重新启动应用程序.

PS我用1分钟轻松做一个快速测试.


Agi*_*gis 2

是的,该限制也适用于基于文件的缓存。是的,一个值就:expires_in可以完成这项工作。

达到此限制后,将不再缓存任何内容。没有抛出异常。