【入門編】 運用監視ツール – Redis

こんにちは。Redisの世界へようこそ。

「超高速なデータストア」として名高いRedisですが、いざ本番環境で使い始めると、「なぜか最近重い気がする」「何が起きているのか見えない」という壁にぶつかることがあります。

Redisは非常にシンプルで強力ですが、その分、内部で何が起きているかを知るための「視力」を養うことが、エンジニアとして生き残るための必須スキルです。今日は、Redisの内部を覗き込むための「三種の神器」について、専門用語を極力削ぎ落としてお話しします。

—

1. 「ライブカメラ」で覗き見る:MONITORコマンド

Redisが今、どんな命令を処理しているのかをリアルタイムで見たいとき、`MONITOR`コマンドを使います。

たとえるなら:
お店のレジカウンターの上に防犯カメラを設置するようなものです。お客さんが何を注文し、店員(Redis)がそれにどう応えているのか、すべてがログとして流れてきます。

  • 使い方: `redis-cli` を立ち上げて `MONITOR` と打つだけです。
  • 注意点: これを使うとRedisの性能がガクッと落ちます。まさに「カメラを設置するとレジの作業効率が少し下がる」のと同じです。調査が終わったら即座に停止(Ctrl+C)しましょう。

実行すると、流れるようにクエリが表示されます
127.0.0.1:6379> MONITOR
OK
1678881234.123456 [0 127.0.0.1:54321] “SET” “user:1” “Alice”
1678881235.678901 [0 127.0.0.1:54321] “GET” “user:1”
何が起きているか丸見えですが、負荷が高いので本番環境では要注意!

—

2. 「不満の声」を拾い上げる:SLOWLOG

Redisは「1つの命令を非常に速く処理する」ことに命をかけています。しかし、たまに重い処理が混ざると、全体が渋滞します。その「時間がかかった処理」を記録してくれるのが`SLOWLOG`です。

たとえるなら:
「時間がかかりすぎてお客様を怒らせてしまった注文」だけを書き留める、店長の日報のようなものです。

  • 仕組み: 「何ミリ秒以上かかったら記録する」という基準を決め、それを超えたものだけをリストアップします。
  • 極意: `SLOWLOG GET 10` と打つと、過去の遅いクエリを10件表示できます。これが頻発しているなら、あなたのプログラムのクエリの書き方を見直すサインです。

10ミリ秒以上かかったクエリを確認
127.0.0.1:6379> SLOWLOG GET 10
1) 1) (integer) 1 # ログID
2) (integer) 1678881000 # 発生時刻
3) (integer) 15000 # かかった時間(マイクロ秒)
4) 1) “KEYS” “” # 実行されたコマンド(これを使うのは御法度です!)

※ `KEYS ` が出たら即座に修正が必要です。Redisにとってそれは「全商品を棚卸しする」ような重労働なのです。

—

3. 「健康診断の結果」を確認する:INFOコマンド

Redisが今、どのくらい忙しいのか、メモリは足りているのか、接続数はどれくらいか。これらを一発で教えてくれるのが`INFO`コマンドです。

たとえるなら:
お店の経営ダッシュボードです。「今日の売上(処理数)」「在庫状況(メモリ使用量)」「混雑具合(接続数)」がひと目で分かります。

  • 注目すべき項目:
  • `used_memory`: 今どれくらいメモリを使っているか。
  • `connected_clients`: 今何人が接続しているか。
  • `instantaneous_ops_per_sec`: 1秒間に何回命令を処理しているか。

情報をまとめて取得
127.0.0.1:6379> INFO stats
Stats(統計情報)セクションを表示
total_connections_received: 1050 # 累計接続数
instantaneous_ops_per_sec: 45 # 現在の秒間処理数(健康のバロメーター)

—

最後に:エンジニアとして大切なこと

初心者のうちは、これらのツールを使って「何が起きているか」を観察するだけで十分です。

1. MONITOR でリアルタイムの流れを感じる。
2. SLOWLOG で「足かせ」になっている処理を見つける。
3. INFO でシステム全体の体調を把握する。

この3つを使いこなせば、Redisでトラブルが起きても焦ることはありません。Redisの心拍数を感じ取れるようになれば、あなたはもうRedisマスターへの第一歩を踏み出しています。

「なぜ?」を繰り返すことが、最高のエンジニアへの近道です。今日の運用から、ぜひこれらのコマンドを試してみてください。応援していますよ。

コメント

タイトルとURLをコピーしました