简介
在Redis安装完毕后会自动安装一个redis-benchmark测试工具,是一个压力测试工具,模拟 N 个客户端同时发出 M 个请求,用于测试 Redis 的性能。使用 redis-benchmark --help 来查看基准参数。当以下值为默认值的时候,则可以省略。
| 序号 | 选项 | 描述 | 默认值 |
|---|---|---|---|
| 1 | -h | 指定服务器主机名。 | 127.0.0.1 |
| 2 | -p | 指定服务器端口 | 6379 |
| 3 | -s | 指定服务器 socket | |
| 4 | -c | 指定并发连接数 | 50 |
| 5 | -n | 指定请求数 | 100000 |
| 6 | -d | 以字节的形式指定 SET/GET 值的数据大小,单位字节 | 3 |
| 7 | -k | 1表示保持连接,0表示重新连接 | 1 |
| 8 | -r | SET/GET/INCR 使用随机 key, SADD 使用随机值 | |
| 9 | -P | 通过管道传输 |
1 |
| 10 | -q | 指定仅给出总述性报告 | |
| 11 | –csv | 以 CSV 格式输出 | |
| 12 | -l(L 的小写字母) | 生成循环,永久执行测试 | |
| 13 | -t | 仅运行以逗号分隔的测试命令列表。 | |
| 14 | -I(i 的大写字母) | Idle 模式。仅打开 N 个 idle 连接并等待。 |
测试
命令解析

测试100个客户端发送20万个请求,每个操作数据的大小为5字节时 set 命令的性能分析。结果由4部分组成:
测试环境报告

- 20万次请求在2.80秒内完成
- 100个并行客户端
- 5字节有效载荷
- 在接收完响应报文后,客户端也不关闭连接
- 第5行是关于持久化策略
- 第6行表示Redis主机没有开启AOF功能
- 第7行表示Redis主机没有开启多线程
延迟的百分比分布

这是按照百分比进行的统计报告:每完成一次剩余测试量的 50%就给出一个统计数据。
- 完成进度: 0.000%,花费时间:0.207毫秒,完成请求的数量:2
- 完成进度:50.000%,花费时间:0.655毫秒,完成请求的数量:101828
- 完成进度:75.000%,花费时间:0.719毫秒,完成请求的数量:153177
- 完成进度:87.500%,花费时间:0.815毫秒,完成请求的数量:175583
- 完成进度:93.750%,花费时间:1.039毫秒,完成请求的数量:187620
- 完成进度:96.875%,花费时间:1.287毫秒,完成请求的数量:193774
以此类推…
延迟的累积分布

这是按照时间间隔统计的报告:基本是每 0.1 毫秒统计一次。
- 在0.1毫秒内,完成进度: 0.000%,完成请求的数量:0
- 在0.2毫秒内,完成进度: 0.001%,完成请求的数量:2
- 在0.3毫秒内,完成进度: 0.011%,完成请求的数量:21
- 在0.4毫秒内,完成进度: 0.040%,完成请求的数量:81
- 在0.5毫秒内,完成进度: 2.578%,完成请求的数量:5156
- 在0.6毫秒内,完成进度:28.195%,完成请求的数量:56389
以此类推…
总述报告

-
吞吐量摘要:每秒71530.76个请求
-
延迟摘要(毫秒):
avg min p50 p95 p99 max 0.720 0.200 0.655 1.127 1.975 14.199 - avg:平均处理每个请求的耗时。
- min:从客户端发送第一个请求开始计时,到Redis服务器返回第一个请求的结果所用的时间。
- p50:即中位数值。20万个请求的响应时间按照从小到大排列,位置在第10万的请求的值,即为P50值。
- p95:20万个请求的响应时间按照从小到大排列,位置在第19万(200000 * 95%)的请求的值,即为P95值。
- p99:20万个请求的响应时间按照从小到大排列,位置在第19万8千(200000 * 99%)的请求的值,即为P99值。
- max:从客户端发送第一个请求开始计时,到Redis服务器返回最后一个请求的结果所用的时间。