首页/数据/Redis 进阶速查/redis-cli --bigkeys 键规模扫描
性能与排障129 条

redis-cli --bigkeys 键规模扫描

redis-cli --bigkeys 用 SCAN 遍历键空间并按类型找出各类型规模领先的键,输出元素数量或长度,是键治理的例行扫描。

Redis 进阶速查数据更新于 2026-10-13

redis-cli --bigkeys 是什么

redis-cli --bigkeys 用 SCAN 遍历键空间,按数据类型分别记录元素数量最多的键,最后汇总输出各类的规模领先者。它是例行键治理的扫描手段,报出的是元素个数或字符串长度,不是内存占用;要按内存口径找大键,用 --memkeys 或 MEMORY USAGE 定点核查。

基本信息

用法redis-cli --bigkeys -i 0.1
实现方式基于 SCAN 的游标遍历,不阻塞整个键空间
输出各类型的最大键、元素数量与占比统计
相关选项-i 每次 SCAN 之间的间隔秒数;--memkeys 按内存口径统计
执行位置建议从库执行,或主库低峰执行

典型使用场景

  • 例行键治理:定期扫描发现规模异常的键,纳入拆分计划
  • 故障复盘:出现延迟尖峰后核对是否有超大集合被整体操作
  • 容量评估:了解各类键的规模分布,为内存估算提供依据
  • 新业务接入评审:上线前扫一次,避免把大键设计带进生产
  • 集群治理:对分片逐个执行,找出分布不均的节点

扫描用法

扫描用法
redis-cli --bigkeys -i 0.1                # 每 0.1 秒扫描一批,降低瞬时压力
redis-cli --bigkeys -i 0.1 --memkeys      # 按内存占用口径统计大键
redis-cli -h slave-host -p 6379 --bigkeys  # 从库执行,避免影响主库
redis-cli MEMORY USAGE suspect:key        # 对扫描结果定点核查内存
redis-cli STRLEN suspect:string           # 字符串键确认长度
redis-cli SCARD suspect:set               # 集合键确认元素个数

输出信息读法

输出项含义怎么用
各类型最大键该类型中元素最多的键名作为重点核查清单
元素数量集合类键的元素个数对照业务的预期规模
字符串长度字符串键的字节数判断是否需要拆分或外置
扫描统计采样的键数量与类型分布确认扫描是否覆盖了目标范围
扫描基于抽样统计口径,用于发现量级问题而不是精确审计:元素个数多的不一定内存最多,字符串长度大的键按内存看可能远超集合同行。
集群模式下没有一次扫全集群的开关,需要对每个主节点分别执行,或借助 CLUSTER SLOTS 遍历后逐个连接。

易错点

  • 在业务高峰对主库全量扫描,SCAN 压力与业务负载叠加,放大延迟
  • 把元素数量直接当成内存占用,忽略了元素自身大小的差异
  • 扫描出大键却不做拆分或归档,下次故障还是一样的位置
  • 集群只扫了一个节点就下结论,漏掉其他分片上的更大键

数据来源与参考

  • Redis 官方文档:--bigkeys 说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌