redis-benchmark
redis-benchmark 可以为Redis做基准性能测试, 它提供了很多选项帮助开发和运维人员测试Redis的相关性能, 下面分别介绍这些选项。
-c
-c
(clients) 选项代表客户端的并发数量(默认是50) 。
-n<requests>
-n
(num) 选项代表客户端请求总量(默认是100000) 。 例如 redis-benchmark -c100 -n20000
代表100各个客户端同时请求Redis, 一共执行20000次。 redis-benchmark 会对各类数据结构的命令进行测试, 并给出性能指标:
20000 requests completed in 0.27 seconds
100 parallel clients
3 bytes payload
keep alive: 1
99.11% <= 1 milliseconds
100.00% <= 1 milliseconds
73529.41 requests per second
例如上面一共执行了20000次get操作, 在0.27秒完成, 每个请求数据量是3个字节, 99.11%的命令执行时间小于1毫秒, Redis每秒可以处理73529.41次get请求。
-q
-q
选项仅仅显示 redis-benchmar k
的 requests per second
信息, 例如:
$redis-benchmark -c 100 -n 20000 -q
PING_INLINE: 74349.45 requests per second
PING_BULK: 68728.52 requests per second
SET: 71174.38 requests per second…
LRANGE_500 (first 450 elements): 11299.44 requests per second
LRANGE_600 (first 600 elements): 9319.67 requests per second
MSET (10 keys): 70671.38 requests per second
-r
在一个空的Redis上执行了redis-benchmark会发现只有3个键:
127.0.0.1:6379> dbsize
(integer) 3
127.0.0.1:6379> keys *
1) "counter:__rand_int__"
2) "mylist"
3) "key:__rand_int__"
如果想向Redis插入更多的键, 可以执行使用-r(random) 选项, 可以向Redis插入更多随机的键。
$redis-benchmark -c 100 -n 20000 -r 10000
-r
选项会在key、 counter键上加一个12位的后缀, -r10000
代表只对后四位做随机处理(-r不是随机数的个数) 。 例如上面操作后, key的数量和结 果结构如下:
127.0.0.1:6379> dbsize
(integer) 18641
127.0.0.1:6379> scan 0
1) "14336"
2) 1) "key:000000004580"
2) "key:000000004519"
…
10) "key:000000002113"
-P
-P
选项代表每个请求pipeline的数据量(默认为1) 。
-k<boolean>
-k
选项代表客户端是否使用 keepalive
, 1为使用, 0为不使用, 默认值为1。
-t
-t
选项可以对指定命令进行基准测试。
redis-benchmark -t get,set -q
SET: 98619.32 requests per second
GET: 97560.98 requests per second
--csv
--csv
选项会将结果按照csv格式输出, 便于后续处理, 如导出到Excel等。
redis-benchmark -t get,set --csv
"SET","81300.81"
"GET","79051.38"
参考资料:《Redis 开发与运维》