【Redis】benchmark 测试工具

根据视频【动力节点】Redis入门到高级教程,全网最新最全redis缓存教程,redis百科大全 进行整理
视频对应资料 https://pan.baidu.com/s/1IlM4LAU2gQqUMeN_B48t8w?pwd=egl7 提取码:egl7


Redis 相关文章汇总归纳整理于:https://www.yuque.com/u27599042/ckgabz


benchmark 测试工具简介

  • 在 Redis 安装完毕后会自动安装一个 redis-benchmark 测试工具,其是一个压力测试工具,用于测试 Redis 的性能。
  • 【Redis】benchmark 测试工具_第1张图片

redis-benchmark 常用命令选项

  • 通过 redis-benchmark --help 命令可以查看到其命令选项及用法
  • 【Redis】benchmark 测试工具_第2张图片

redis-benchmark 常用命令选项说明

 -h <hostname>      指定要进行测试的 Redis 服务器所在的主机 IP (默认 127.0.0.1)
 -p <port>          指定 Redis server 运行的端口 (默认 6379)
 -s <socket>        Server socket (overrides host and port)
 -a <password>      指定与 Redis server 连接进行操作的密码 Auth
 --user <username>  Used to send ACL style 'AUTH username pass'. Needs -a.
 -u <uri>           Server URI.
 -c <clients>       指定本次测试每个指令的并行连接 Redis server 的客户端数量 (default 50)
 -n <requests>      指定本次测试每个指令的请求总数 (default 100000)
 -d <size>          本次测试 set/get 数据大小,单位字节 (default 3)
 --dbnum <db>       指定数据库编号 (default 0)
 -3                 Start session in RESP3 protocol mode.
 --threads <num>    开启多线程模式,指定线程个数
 --cluster          Enable cluster mode.
                    If the command is supplied on the command line in cluster
                    mode, the key must contain "{tag}". Otherwise, the
                    command will not be sent to the right cluster node.
 --enable-tracking  Send CLIENT TRACKING on before starting benchmark.
 -k <boolean>       1=keep alive 0=reconnect (default 1) client 与 server 是否保持连接
 -r <keyspacelen>   Use random keys for SET/GET/INCR, random values for SADD,
                    random members and scores for ZADD.
                    Using this option the benchmark will expand the string
                    __rand_int__ inside an argument with a 12 digits number in
                    the specified range from 0 to keyspacelen-1. The
                    substitution changes every time a command is executed.
                    Default tests use this to hit random keys in the specified
                    range.
                    Note: If -r is omitted, all commands in a benchmark will
                    use the same key.
 -P <numreq>        Pipeline <numreq> requests. Default 1 (no pipeline).
 -q                 本次测试的报告,简要输出
 --precision        Number of decimal places to display in latency output (default 0)
 --csv              本次测试报告以 CSV 的形式格式化输出
 -l                 循环进行测试,一直测下去
 -t <tests>         指定要进行测试的命令(get,set,lpush...),如果要指定多个命令使用英文逗号分隔,不能有空格
                  	默认情况下会测试所有命令
 -I                 Idle mode. Just open N idle connections and wait.
 -x                 Read last argument from STDIN.
 --help             Output this help and exit.
 --version          Output version and exit.

使用 benchmark 进行测试

  • image.png
  • 本次测试 Redis server 运行在的宿主机 IP 为 127.0.0.1,Redis server 监听端口号为 6379, 测试的并行连接客户端数量 100,每个命令请求总数 100000,数据大小 10 字节,连接 Redis server 的密码 123123

测试结果分析

  • benchmark 默认情况下,会逐个测试所有 Redis 命令,每个命令都会给出一份测试报告,每个测试报告由四部分构成

测试环境报告

  • 【Redis】benchmark 测试工具_第3张图片
    • 所有的请求在多少时间内完成
    • 并行客户端数量
    • 是否保持连接
    • 持久化保存配置
    • AOF 是否开启
    • 是否开启多线程

延迟百分比分布

  • 这是按照百分比进行的统计报告:每完成一次剩余测试量的 50% 就给出一个统计数据。
  • 【Redis】benchmark 测试工具_第4张图片

延迟的累积分布

  • 这是按照时间间隔统计的报告:基本是每 0.1 毫秒统计一次。
  • 【Redis】benchmark 测试工具_第5张图片

总述报告

  • 这是总述性报告
  • image.png

测试报告简要输出

  • image.png

你可能感兴趣的:(Redis,redis,测试工具,benchmark,redis-benchmark)