进入到 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 选项选择。