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