首页/数据/Redis 进阶速查/redis-benchmark 快速压测
性能与排障129 条

redis-benchmark 快速压测

redis-benchmark 内置压测工具,按命令类型生成负载并输出吞吐与延迟统计;用专属实例或测试环境运行,别对着生产库裸测。

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

redis-benchmark 是什么

redis-benchmark 是 Redis 自带的压测工具,默认对一组内置命令生成负载并输出吞吐与延迟分布,用来快速了解实例在当前配置下的量级表现。默认 10 万请求、50 并发,命令集覆盖常见读写操作,也可以用参数收窄成单命令压测。

基本信息

命令redis-benchmark -h host -p port
默认负载10 万请求、50 并发,跑一组内置命令
关键参数-n 请求数、-c 并发数、-d 值大小、-t 命令集、-P 管道深度、-q 精简输出
输出内容各命令的每秒请求数与延迟分布
定位快速量级评估;要模拟业务分布应改用其他负载生成器

典型使用场景

  • 基线记录:新实例或新机型上线时留下量级基线数据
  • 配置对比:调整网络线程数、持久化策略前后各跑一轮
  • 网络位置影响:压测机与实例的距离不同,结论差异很大
  • 命令级对照:只压 SET 与 GET,判断读写路径是否对称
  • 管道效果验证:用管道深度看批量化能提升多少吞吐
  • 版本回归:升级后按同参数复跑,发现异常退化

常用压测

常用压测
redis-benchmark -h 127.0.0.1 -p 6379 -n 100000 -c 50   # 默认规模压测
redis-benchmark -t set,get -n 50000 -c 20                # 只压读写两条命令
redis-benchmark -t set -d 1024 -n 50000                  # 指定 value 大小为 1KB
redis-benchmark -t get -P 16 -n 200000                   # 管道深度 16,看批量收益
redis-benchmark -q                                       # 只输出结果摘要
redis-benchmark --csv                                    # 输出适合入表格的格式
redis-cli INFO stats | grep -E 'instantaneous_ops_per_sec'  # 压测同时看服务端视角

结果读法

输出项含义怎么用
requests per second每秒完成的请求数吞吐量级判断
p50 延迟中位延迟代表常规体验
p99 延迟尾部延迟比平均值更能反映真实体验
延迟分布行按区间的直方分布看是否存在长尾
百分比汇总各分位延迟不同配置之间的尾部对比
压测机本身也会成为瓶颈:CPU、网卡和单进程模型都会限制结果,压测之前先确认压力发生器还有余量。
不要对生产实例直接施加大压力:写入型命令会真的改数据,读命令也会占满主线程,影响面往往在测试开始后才显现。

易错点

  • 对生产实例直接大压力压测,风险不可控,影响真实用户请求
  • 忽略压测机自身的瓶颈,测出来的是压测机上限而不是实例上限
  • 只比较吞吐不看尾部延迟,配置对比结论片面
  • 拿默认命令集的结果直接当业务容量结论,忽略访问分布差异

数据来源与参考

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