Techioz Blog

Rails: ファイルストアのキャッシュサイズを制御する

概要

Rails のファイルベースのキャッシュのドキュメントには次のように書かれています。

残念ながら、古いエントリを定期的にクリアする方法については何も提供されていません。 :expires_in に適切な値を設定することで効果があるのでしょうか、それともキャッシュをクリアする裏に何らかの黒魔術があるのでしょうか?

また、ドキュメントでは、メモリベースのキャッシュのサイズを制限するオプションも提供されています。

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

これはファイルベースのキャッシュでも機能しますか?そしてさらに重要なのは、キャッシュがそのサイズ制限を下回るとどうなるでしょうか?キャッシュされた古い値は削除されますか、それとも何らかの例外がスローされますか?

前もって感謝します、 ダニジュ

解決策

FileStore キャッシュを試してみたところ、:expires_in オプションは機能するが、:size オプションは機能しないことがわかりました。

オプションを指定する場合は、パスも指定する必要があります。次の例を試してください。

コードを config/application.rb に配置し、config/environments/development.rb でキャッシュをアクティブにしてアプリを再起動することを忘れないでください。

追伸1 分を使って簡単なテストを行います。