💤
RailsのキャッシュストアにRedisを使う場合の動作確認方法
Railsの小ネタです。
Railsのキャッシュストアとして:redis_cache_storeを指定すると、Redisにキャッシュさせることができます。
config.cache_store = :redis_cache_store, { url: ENV["REDIS_URL"] }
これが正しく設定されているかどうかを確認する方法です。
キャッシュストアに何が使われているか調べる
Rails consoleでRails.cacheをみると、キャッシュストアの設定が確認できます。
irb(main):001:0> Rails.cache.class
=> ActiveSupport::Cache::RedisCacheStore
キャッシュストアのRedisが正常に動作しているか調べる
Rails.cache.redisはredis clientを返してきます。
irb(main):002:0> Rails.cache.redis
=> #<Redis client v4.8.1 for redis://redis:6379/0>
とりあえず動いているかどうか調べる手段としてpingメソッドがあります。pingを実行してPONGが返ってくれば動作していることは確認できます。
irb(main):004:0> Rails.cache.redis.ping
=> "PONG"
Redisに正常に接続できていない場合にはエラーが返ってきたりします。
irb(main):005:0> Rails.cache.redis.ping
/usr/local/bundle/gems/redis-4.8.1/lib/redis/client.rb:398:in `rescue in establish_connection': Error connecting to Redis on redis:6379 (SocketError) (Redis::CannotConnectError)
Discussion