首页/数据/Redis 进阶速查/redis-benchmark 参数详解
性能与排障129 条

redis-benchmark 参数详解

常用参数:-n 总请求数、-c 并发连接、-P 管道深度、-t 命令过滤、-r 随机键空间、-q 精简输出,组合出贴近业务的负载形状。

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

redis-benchmark 参数是什么

redis-benchmark 是自带的压测工具:用指定的命令组合、并发连接数与管道深度向实例发出可控负载,输出吞吐与延迟统计。它的数字只在同一套参数下互相可比——管道深度、并发数或键分布的任何一个改动都会改变结果含义,所以做容量结论前必须先固定口径。

基本信息

用途吞吐与延迟基线、变更前后对比
可比性只有参数完全相同时结果才可比
目标实例用 -h 与 -p 指定,注意不要打到生产主库
输出形式默认表格,可加 -q 精简或用 --csv 便于采集

常用参数

参数作用使用建议
-n总请求数,默认 100000太小会被启动开销干扰,做趋势对比要足够长
-c并发连接数,默认 50与业务连接池规模对齐
-P每连接管道深度,默认 1决定吞吐上限,对比时必须保持一致
-t命令集合,如 set,get按业务读写比例挑选
-r键随机范围模拟真实键分布,避免全程只压一个键
-d值大小(字节),默认 3与真实 value 体积一致
--threads压测端线程数压测端先打满时增加
--csv结果以 CSV 输出便于脚本采集与表格对比

示例

示例
redis-benchmark -t ping -q                       # 先确认连通与基线
redis-benchmark -t set,get -n 200000 -c 50 -P 1 -q
redis-benchmark -t set,get -n 200000 -c 100 -P 16 -r 100000 -d 100 -q
redis-benchmark --threads 4 -n 1000000 -c 200 -P 8 -t get -r 1000000 --csv
# 只在测试实例或业务低峰执行,并提前告知相关方

典型使用场景

  • 版本升级前后对比:同一套参数跑两遍,确认无性能回退
  • 配置变更验证:改完参数或网络路径后做前后对照
  • 部署形态对比:容器与物理机、跨机房链路的基线差异
  • 容量评估:结合业务读写比例与值体积设计负载形状
  • 回归基线:把常用参数固定成脚本,按期重跑
管道深度提高会显著抬高吞吐数字,逐条模式与管道模式的结果不能混着比;记录结果时把完整命令行一起留存,否则后续无法复现。
压测会真实写入数据并占用 CPU 与带宽;不要对生产主库跑高并发写入压测,也不要与业务高峰重叠。

易错点

  • 高管道数跑出的数字直接当业务容量,与逐条访问的真实场景不符
  • 不同参数组合的结果混着对比,结论失真
  • 不设 -r 只用单一键压测,命中与淘汰行为与真实场景差异大
  • 压测端 CPU 先打满,把客户端瓶颈当成服务端上限
  • 对生产库做写入压测或与业务高峰重叠,直接造成业务影响

数据来源与参考

  • Redis 官方文档:benchmark 参数说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌