💤

RailsのキャッシュストアにRedisを使う場合の動作確認方法

2024/08/17に公開

Railsの小ネタです。

Railsのキャッシュストアとして:redis_cache_storeを指定すると、Redisにキャッシュさせることができます。

config.cache_store = :redis_cache_store, { url: ENV["REDIS_URL"] }

https://guides.rubyonrails.org/caching_with_rails.html#activesupport-cache-rediscachestore

https://railsguides.jp/caching_with_rails.html#activesupport-cache-rediscachestore

これが正しく設定されているかどうかを確認する方法です。

キャッシュストアに何が使われているか調べる

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