DBAtlas · 数据库运维图谱

查找大 key(--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 扫描键空间,按类型报告元素最多和占用内存最多的 key;显示可疑 key 的实际内存消耗和编码。

适用场景

内存意外增长、单条命令(HGETALL、SMEMBERS、DEL)造成延迟,或集群中某个节点比其他节点占用更多内存时。

注意

扫描使用 SCAN,不会阻塞服务器,但会遍历整个键空间;-i 0.01 每 100 次 SCAN 调用休眠一次以降低负载。用 DEL 删除大 key 会阻塞主线程;请使用 UNLINK。在大型集合上,SAMPLES 0 的 MEMORY USAGE 为 O(N)。在副本上运行不会给主节点增加负载。

在 DBAtlas 中打开 →

相关内容