Open5

Redisで障害が起きているかもしれないときに調べること

en30en30

メモリ

メモリ使用上限と現在の使用量を見る。

$ 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

en30en30

レイテンシ

redis-cli でリアルタイムの統計情報を見れる。

redis-cli --latency
min: 0, max: 162, avg: 0.44 (9573 samples)

実際に実行されているコマンドは monitor で見れる。

$ redis-cli monitor
en30en30

Redisはシングルスレッドなので、遅いコマンドがあるとブロックされてしまって危険。 redis-cli --latency でもmaxが大きいとまずい。

踏みがちな地雷は KEYS コマンド。key数に関して O(N) なので注意が必要。
KEYS – Redis
そういうときは SCAN コマンドを使う。
SCAN – Redis