首页/数据/Redis 进阶速查/INFO commandstats 命令调用画像
性能与排障129 条

INFO commandstats 命令调用画像

INFO commandstats 按命令统计调用次数、总耗时与平均耗时,用来找出调用量大或平均值偏高的命令。

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

INFO commandstats 是什么

INFO commandstats 按命令给出调用次数、累计耗时与平均每次调用耗时,较新版本还会给出被拒绝与执行失败的次数。它回答的是谁被调用、调用了多少次、平均花多久,配合调用量才能分清高频命令和慢命令这两类完全不同的治理对象。

基本信息

查看方式INFO commandstats
主要字段calls、usec、usec_per_call,较新版本含 rejected_calls、failed_calls
统计口径自启动或上次重置以来的累计值
重置方式CONFIG RESETSTAT,会清空全部统计
输出规模命令种类多时输出很长,建议过滤后再看

典型使用场景

  • 命令画像:找出调用量最大的命令,理解业务的访问结构
  • 优化排序:高频命令与高平均耗时命令分开治理,避免方向错位
  • 变更验证:发布前后对比同一命令的调用量与耗时变化
  • 容量规划:用调用量推算扩缩容与分片需求
  • 异常发现:平时不出现的命令突然频繁调用,往往是脚本或人工操作
  • 风险收口:平均耗时高的低频命令,常常是小众但危险的用法

采集与对比

采集与对比
redis-cli INFO commandstats                                  # 全量命令统计
redis-cli INFO commandstats | grep -E 'cmdstat_get|cmdstat_set'  # 只看关注命令
redis-cli INFO stats | grep -E 'total_commands_processed'    # 实例总命令量,作为对照
redis-cli SLOWLOG GET 5                                      # 慢日志与命令统计互相印证
redis-cli INFO commandstats > before.txt                     # 变更前留基线快照
redis-cli CONFIG RESETSTAT                                   # 重置统计,重新开窗口
redis-cli INFO commandstats > after.txt                      # 窗口结束后再取一次

字段读法

字段含义怎么用
calls命令被调用的次数识别高频命令
usec累计耗时(微秒)结合调用量看总成本
usec_per_call平均每次调用耗时排序找出单次代价高的命令
rejected_calls被拒绝的调用数持续增长说明受限,需要定位原因
failed_calls执行失败的次数异常路径的观测口
平均耗时会被长尾拉高、也会被高频摊薄:判断一条命令是否真的慢,要和慢日志、命令级百分位一起看。
CONFIG RESETSTAT 会清空全部统计,做变更前后对比之前先导出快照,否则基线数据会一起丢掉。

易错点

  • 只看平均耗时忽略调用量,把高频廉价命令与低频昂贵命令混为一谈
  • 重置统计前不导出基线,前后对比失去参照,优化效果无法证明
  • 把累计值当实时指标,看到数值变大就以为当前变慢
  • 不按固定窗口取差分,趋势判断建立在错误口径上

数据来源与参考

  • Redis 官方文档:commandstats 说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌