# 一、简介
在Redis 安装完毕后会自动安装一个redis-benchmark 测试工具,其是一个压力测试工具,用于测试 Redis 的性能。
通过 redis benchmark help 命令可以查看到其用法:
其选项 options 非常多,下面通过例子来学习常用的 options 的用法。
# 二、测试-1
# 1、命令解析
以上命令中选项的意义:
● -h:指定要测试的 Redis 的 IP,若为本机,则可省略。
● -p:指定要测试的 Redis 的 port,若为 6379,则可省略。
● -c:指定模拟有客户端的数量,默认值为 50。
● -n:指定这些客户端发出的请求的总量,默认值为 100000。
● -d:指定测试get/set 命令时其操作的value 的数据长度,单位字节,默认值为 3。在测试其它命令时该指定没有用处。
以上命令的意义是,使用 100 个客户端连接该 Redis,这些客户端总共会发起 100000个请求,set/get 的value 为 8 字节数据。
# 2、测试结果分析
该命令会逐个测试所有 Redis 命令,每个命令都会给出一份测试报告,每个测试报告由四部分构成:
# 1.测试环境报告
首先就是测试环境:
ChatGPT:
- "100000 requests completed in 0.56 seconds": 这表示在0.56秒内完成了10万次请求。
- "100 parallel clients": 同时有100个并发客户端进行测试。
- "8 bytes payload": 每个请求携带的数据大小为8字节。
- "keep alive:1": 表示 keep-alive 参数设置为1,即开启了长连接。
- "host configuration "save":3600 1 300 100 60 10000": 这部分可能是关于Redis持久化(save)配置的参数设置,包括时间间隔等。
- "host configuration "appendonly":no": 这是关于Redis的append only文件的配置,这里设置为了不开启。
# 2.延迟百分比分布
这是按照百分比进行的统计报告:每完成一次剩余测试量的50% 就给出一个统计数据。
# 3.延迟的累积分布
这是按照时间间隔统计的报告:基本是每 0.1 毫秒统计一次。
# 4.总述报告
ChatGPT:
- "throughput summary: 72046.11 requests per second": 表示每秒处理了大约72046.11个请求,这是一个很高的吞吐量,显示了系统的处理能力很强。
- "latency summary (msec)": 这部分是关于延迟的总结。
- "avg": 平均延迟为0.714毫秒。
- "min": 最小延迟为0.328毫秒。
- "p50": 50%的请求的延迟在0.695毫秒以内。
- "p95": 95%的请求的延迟在0.855毫秒以内。
- "p99": 99%的请求的延迟在1.295毫秒以内。
- "max": 最大延迟为3.823毫秒。
# 三、测试-2
以上命令中选项的意义:
● -t:指定要测试的命令,多个命令使用逗号分隔,不能有空格。
● -q:指定仅给出总述性报告。