大きなキーを特定する (--bigkeys、--memkeys、MEMORY USAGE)
Redisメモリコマンド
# Largest keys per type by element count:
redis-cli -h redis1 -p 6379 --bigkeys -i 0.01
# By memory size:
redis-cli -h redis1 -p 6379 --memkeys -i 0.01
# Size and length together, top 20 keys (redis-cli 7.4+):
redis-cli -h redis1 -p 6379 --keystats --top 20 -i 0.01
# Memory usage (SAMPLES 0: all elements) and encoding of a single suspicious key:
redis-cli -h redis1 -p 6379 MEMORY USAGE kullanici:1001:sepet SAMPLES 0
redis-cli -h redis1 -p 6379 OBJECT ENCODING kullanici:1001:sepet概要
SCAN でキースペースを走査し、型ごとに要素数が最も多いキーとメモリ使用量が最も多いキーを報告する。疑わしいキーの実際のメモリ消費量とエンコーディングを表示する。
使用する場面
メモリが予期せず増加した場合、単一のコマンド (HGETALL、SMEMBERS、DEL) がレイテンシを引き起こす場合、またはクラスタ内の 1 つのノードが他より多くのメモリを使用している場合。
注意
走査は SCAN を使用するためサーバーをブロックしないが、キースペース全体をたどる。-i 0.01 は 100 回の SCAN 呼び出しごとにスリープして負荷を減らす。大きなキーを DEL で削除するとメインスレッドがブロックされるため、UNLINK を使用する。SAMPLES 0 を指定した MEMORY USAGE は、大きなコレクションでは O(N) になる。レプリカで実行すればマスターに負荷はかからない。