根据视频【动力节点】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 常用命令选项
- 通过 redis-benchmark --help 命令可以查看到其命令选项及用法
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 进行测试
- 本次测试 Redis server 运行在的宿主机 IP 为 127.0.0.1,Redis server 监听端口号为 6379, 测试的并行连接客户端数量 100,每个命令请求总数 100000,数据大小 10 字节,连接 Redis server 的密码 123123
测试结果分析
- benchmark 默认情况下,会逐个测试所有 Redis 命令,每个命令都会给出一份测试报告,每个测试报告由四部分构成
测试环境报告
- 所有的请求在多少时间内完成
- 并行客户端数量
- 是否保持连接
- 持久化保存配置
- AOF 是否开启
- 是否开启多线程
延迟百分比分布
- 这是按照百分比进行的统计报告:每完成一次剩余测试量的 50% 就给出一个统计数据。
延迟的累积分布
- 这是按照时间间隔统计的报告:基本是每 0.1 毫秒统计一次。
总述报告
- 这是总述性报告