Open5
Redisで障害が起きているかもしれないときに調べること
基本は継続的に監視した方が良さそう。
oliver006/redis_exporter + Grafanaとか、SaaS使うとか。
メモリ
メモリ使用上限と現在の使用量を見る。
$ redis-cli info | grep memory_human
used_memory_human: xxxG
total_system_memory_human: xxxG
maxmemory_human: xxxG
上限まで使用しているときに起きることは、設定しているEviction policy次第。
$ redis-cli info | grep policy
maxmemory_policy:volatile-lru
policyの中身については https://redis.io/topics/lru-cache#eviction-policies
レイテンシ
redis-cli
でリアルタイムの統計情報を見れる。
redis-cli --latency
min: 0, max: 162, avg: 0.44 (9573 samples)
実際に実行されているコマンドは monitor
で見れる。
$ redis-cli monitor
Redisはシングルスレッドなので、遅いコマンドがあるとブロックされてしまって危険。 redis-cli --latency
でもmaxが大きいとまずい。
踏みがちな地雷は KEYS
コマンド。key数に関して
KEYS – Redis
そういうときは SCAN
コマンドを使う。
SCAN – Redis