我们可以通过 redis 自带工具 redis-benchmark 来对 redis 服务器进行性能测试。
我们可以通过简单的 redis-benchmark
命令直接对本地部署的 redis 进行性能测试,不用输入任何的参数。默认情况下,redis-benchmark 会向 redis 服务器使用 50 个并发连接发送共 100000 个请求。
如果想指定参数可以参考下面命令:
shell
redis-benchmark -h localhost -o 6379 -c 100 -n 200000
这个命令代表想 IP 地址为 localhost 的 6379 端口使用 100 个并发连接请求发送 200000 个请求。
redis-benchmark 会统计两种数据:throughput summary
(吞吐概要), latency summary
(延迟概要)。
效果如下:
shell
Summary:
throughput summary: 194552.53 requests per second
latency summary (msec):
avg min p50 p95 p99 max
0.149 0.080 0.151 0.183 0.207 1.343
这里的 throughput summary 表示在测试期间,Redis 服务器平均每秒处理了约194552.53个请求。这个数字是通过将总的请求次数除以总的测试时间得到的,它反映了 Redis 服务器的吞吐量。
latency summary 是关于请求延迟的统计信息,所有的数值都以毫秒为单位。
其中的数据含义如下:
avg:平均延迟,即所有请求的延迟时间的平均值。
min:最小延迟,即所有请求中延迟时间最短的请求的延迟时间。
p50:50th 百分位数,也就是中位数,即所有请求中有50%的请求的延迟时间小于或等于这个值。
p95:95th 百分位数,即所有请求中有95%的请求的延迟时间小于或等于这个值。
p99:99th 百分位数,即所有请求中有99%的请求的延迟时间小于或等于这个值。
max:最大延迟,即所有请求中延迟时间最长的请求的延迟时间。
如果我们想要针对特定命令进行测试,我们可以使用-t
参数指定我们要测试的命令:
shell
redis-benchmark -t set,get
这行命令会指定 redis-benchmark 只运行 SET 和 GET 命令的基准测试,默认情况下 redis-benchmark 会执行所有可用的 Redis 命令的基准测试。