こんにちは!
Discourse インスタンスで負荷テストを行っているところ、同じコメントスレッドを繰り返し取得し続けると、Redis のキャッシュヒット率が上がるどころか低下することに気づきました。これは少し意外でした(読み書きが混在する場合は最大 85% のキャッシュヒット率でしたが、読み取り 100% の場合は最低 22% まで低下しました)。
コードベースやこちらのフォーラムでいくつか検索してみたのですが、Redis キャッシュがどのように活用されているのか、いまいち明確ではありません。README には以下のように記載されています。
Redis をキャッシュおよび一時的なデータの保存に使用しています。
上記の負荷テスト中に Redis に送信されたコマンドを redis-cli でダンプしてみたところ、主にスケジューリングされたジョブや「\_\mb_backlog_id_n」というプレフィックスを持つキーに対する「get」コマンドが見られました(これは MessageBus 関連を指していると思います)。
以下の点について質問させてください。
- コードベース内で、どのデータが Redis にキャッシュされているかを検索する「簡単な」方法はありますか?これらの質問に自分で答えたいのですが、残念ながら Ruby on Rails アプリケーション(いや、Ruby 自体)にはあまり詳しくないのです

- ログイン状態かログアウト状態かによって、キャッシュヒット率は影響を受けますか?参考までに、上記の負荷テストは管理者 API キーを使用して行いました。
- 投稿の内容のように、頻繁にクエリされ比較的静的なデータも Redis にキャッシュされていますか?それとも、Redis は主に Sidekiq などのジョブスケジューリングやバックグラウンド処理に使用されているのでしょうか?
ご回答いただけますと幸いです!