hene

hene.dev

development 環境で本当にキャッシュされているか確認する

development 環境で本当にキャッシュされているか確認する

development でキャッシュを有効にする

$ rails dev:cache
Development mode is now being cached.

development 環境でキャッシュを有効化/無効化 - hene.dev でキャッシュの試し方について書いています。

キャッシュさせる

下記のように書いたページにアクセスしてみます。

/ slim

- cache "test-#{@test.id}-#{@test.updated_at.to_i}", skip_digest: true, expires_in: 1.week do
  .test
    / 略

digest を付与しない

skip_digest: true

キャッシュの期限を設定

今回は、1 週間としました。

expires_in: 1.week

確認する

redis を使っている場合の確認方法です。

binding.pry で処理を止めて、

binding.pry は、pry-byebug という gem を入れると使えます。

/ slim

- binding.pry
- cache "test-#{@test.id}-#{@test.updated_at.to_i}", skip_digest: true, expires_in: 1.week do
  .test
    / 略

redis の中身を見てみると、

[1] pry(main)> redis = Redis.new(url: 'redis://localhost:6379/0')
=> #<Redis client v3.3.5 for redis://localhost:6379/0>
[2] pry(main)> redis
=> #<Redis client v3.3.5 for redis://localhost:6379/0>
[3] pry(main)> redis.keys
=> ["cache:views/test-1-1556071380"]
[4] pry(main)> Rails.cache.read redis.keys.first
=> "<div 略 ... >"

キャッシュされていることが確認できます。

確認できない場合

$ bundle exec rails c
[1] pry(main)> redis = Redis.new(url: 'redis://localhost:6379/0')
=> #<Redis client v3.3.5 for redis://localhost:6379/0>
[2] pry(main)> redis
=> #<Redis client v3.3.5 for redis://localhost:6379/0>
[3] pry(main)> redis.keys
=> ["cache:views/test-1-1556071380"]

ここまでは同じだったのですが、なぜかキャッシュの中身は見れませんでした。

[4] pry(main)> Rails.cache.read redis.keys.first
=> nil

参考

関連記事