简单测试
redis自带了并发测试工具 redis-benchmark
, 只需要携带几个简单的参数就可以完成redis的压力测试.
并发测试
redis-benchmark.exe -h 127.0.0.1 -p 6379 -c 100 -n 100000
上面的命令意思是使用 100 的并发,发起 10w 次请求
结果分析
====== GET ======
100000 requests completed in 0.98 seconds
100 parallel clients
3 bytes payload
keep alive: 1
60.40% <= 1 milliseconds
99.66% <= 2 milliseconds
99.88% <= 3 milliseconds
99.99% <= 4 milliseconds
100.00% <= 4 milliseconds
102249.49 requests per second
比如上面的就是执行了 get
命令, 10w次请求在0.98s 执行完毕. 使用了100个客户端, 每次使用了 3个字节负载
其中 60.40% 在1ms 执行完毕.....
大数据测试
redis-benchmark.exe -h 127.0.0.1 -p 6379 -q -d 200
上面命令的意思是 一次数据包200字节, 结果做简单输出
结果分析
PING_INLINE: 104821.80 requests per second
PING_BULK: 113895.21 requests per second
SET: 102459.02 requests per second
GET: 110253.59 requests per second
INCR: 110011.00 requests per second
LPUSH: 91996.32 requests per second
RPUSH: 94786.73 requests per second
LPOP: 94428.70 requests per second
RPOP: 93984.96 requests per second
其中 SET: 102459.02 requests per second
表示每秒执行了10w+次请求
部分命令测试
redis-benchmark.exe -h 127.0.0.1 -p 6379 -t set,get -q -n 100000
上面命令的意思是对 set,get
两个命令做 10w 次请求测试, 结果做简单输出
结果分析
SET: 97656.24 requests per second
GET: 108813.92 requests per second
其中 GET: 108813.92 requests per second
表示每秒执行了10w+次 get
操作
只测试某种命令
redis-benchmark.exe -h 127.0.0.1 -p 6379 -n 100000 -q script load "redis.call('set','name','yzt')"
上面命令的意思是只测试 set name yzt
这一个命令的速度
结果分析
script load redis.call('set','name','yzt'): 82644.63 requests per second
结果表示当前命令一秒钟可以完成 8w+ 次操作
参数详解
- -h, -p: 不解释
- -c: 并发数
- -n: 请求数
- -q: 简单结果输出
- -d 100: 100字节的负载
- -t set:只测试set
- script load:只测试某个脚本