Redis 性能分析工具“redis-benchmark”

本文将介绍怎样使用Redis 性能分析工具“redis-benchmark”进行性能分析。

进入到 Redis 安装目录,运行  命令查看帮助信息:

用法: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>]
 -h <hostname>      服务器主机名 (默认 127.0.0.1)
 -p <port>          服务器端口 (默认 6379)
 -s <socket>        服务器套接字 (覆盖主机名和端口)
 -a <password>      Redis 验证密码
 -c <clients>       并行连接数(默认 50)
 -n <requests>      请求总数(默认 100000)
 -d <size>          SET/GET 值的数据大小(以字节为单位)(默认 2)
 -dbnum <db>        SELECT 指定的数据库编号(默认为 0)
 -k <boolean>       1=保持活动状态 0=重新连接(默认 1)
 -r <keyspacelen>   对 SET/GET/INCR 使用随机键,对 SADD 使用随机值使用此选项,基准测试将在参数中扩展字符串 __rand_int__,其中包含从 0 到 keyspacelen-1 的指定范围内的 12 位数字。每次执行命令时,替换都会更改。 默认测试使用它来点击指定范围内的随机键。
 -P <numreq>        Pipeline <numreq> 请求。默认 1(无管道)
 -q                 安静的。只显示查询/秒值
 --csv              以 CSV 格式输出
 -l                 循环。永远运行测试
 -t <tests>         仅运行逗号分隔的测试列表。测试名称与作为输出生成的名称相同。
 -I                 空闲模式。 只需打开 N 个空闲连接并等待。

示例

针对 127.0.0.1:6379 使用默认配置运行基准测试:

D:\server\redis-64.3.0.503>redis-benchmark.exe
====== PING_INLINE ======
  100000 requests completed in 2.77 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

18.36% <= 1 milliseconds
94.39% <= 2 milliseconds
98.81% <= 3 milliseconds
...
99.94% <= 9 milliseconds
99.96% <= 10 milliseconds
100.00% <= 11 milliseconds
100.00% <= 11 milliseconds
36140.22 requests per second

====== PING_BULK ======
  100000 requests completed in 2.69 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

...

针对 192.168.1.3 使用 20 个并行客户端,总共 100k 个请求:

D:\server\redis-64.3.0.503>redis-benchmark -h 192.168.1.3 -p 6379 -n 100000 -c 20
====== PING_INLINE ======
  100000 requests completed in 2.68 seconds
  20 parallel clients
  3 bytes payload
  keep alive: 1

97.90% <= 1 milliseconds
99.76% <= 2 milliseconds
...
99.97% <= 7 milliseconds
100.00% <= 7 milliseconds
37313.43 requests per second

====== PING_BULK ======
  100000 requests completed in 2.56 seconds
  20 parallel clients
  3 bytes payload
  keep alive: 1
  ...

仅使用 SET 测试用大约 100 万个键填充 127.0.0.1:6379:

D:\server\redis-64.3.0.503> redis-benchmark -t set -n 1000000 -r 100000000
====== SET ======
  1000000 requests completed in 30.72 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

29.20% <= 1 milliseconds
87.69% <= 2 milliseconds
...
100.00% <= 22 milliseconds
32552.08 requests per second

基准 127.0.0.1:6379 用于生成 CSV 输出的一些命令:

redis-benchmark -t ping,set,get -n 100000 --csv

对特定命令行进行基准测试:

redis-benchmark -r 10000 -n 10000 eval 'return redis.call("ping")' 0

用 10000 个随机元素填充一个列表:

redis-benchmark -r 10000 -n 10000 lpush mylist __rand_int__

在用户指定的命令行上,__rand_int__ 被替换为一个随机整数,该整数的值范围由 -r 选项选择。

真理惟一可靠的标准就是永远自相符合。 —— 欧文
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号