LoginSignup
19
11

More than 5 years have passed since last update.

Rails.cache.clearとRails.cache.deleteの違い

Posted at

はじめに

初めてのQiita投稿です!

Railsのアプリを作成して一段落すると、キャッシュなどを利用した高速化を行うとおもいます。
その際に、不必要なキャッシュを削除しようと思った時に、いろいろと思うところがあったので忘備録がてら記事をアップしてみます。

動作環境

Ruby 2.2.0
Rails 4.2.0

Rails.cache.clear

Rails.cache.clear

上述のコードは、アプリでキャッシュしていたすべてのオブジェクトを削除します。
便利である一方、意図しない動作、例えば他の機能で用いていたcacheまで削除してしまい一時的に低速化する、といったことを引き起こしかねないので、使用時には注意が必要です。

Rails.cache.delete

Rails.cache.delete('foo')

こちらのコードは、キャッシュしていたもののうち、引数の名前を持つものを削除してくれます。
特定のオブジェクトを削除したい時に便利です。

教訓

キャッシュしていたオブジェクトを削除したい時に、「削除」を意味する英語としてパッと思いついたのが'clear'でした。
そのまま確認せずにclearでテストコードを実行した結果、キャッシュがすべて消えてしまい、大変困りました...
Railsでは便利なメソッドが多数存在し、大抵は行いたい動作の「英訳した動詞」で実現することができますが、その英単語の細かいニュアンスを理解していないがために起こったミスでした...
今後はきちんとリファレンスを見て動作を確認するべきだ、ということも同時に学べた一件でした。

記事にすると知識が定着する感じがするなぁ...

19
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
11