Redis-benchmark测试Redis性能

Redis-benchmark是官方自带的Redis性能测试工具,可以有效的测试Redis服务的性能。

使用说明如下:

Redis-benchmark测试Redis性能

Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>]

 -h <hostname>      Server hostname (default 127.0.0.1)
 -p <port>          Server port (default 6379)
 -s <socket>        Server socket (overrides host and port)
 -c <clients>       Number of parallel connections (default 50)
 -n <requests>      Total number of requests (default 10000)
 -d <size>          Data size of SET/GET value in bytes (default 2)
 -k <boolean>       1=keep alive 0=reconnect (default 1)
 -r <keyspacelen>   Use random keys for SET/GET/INCR, random values for SADD
  Using this option the benchmark will get/set keys
  in the form mykey_rand:000000012456 instead of constant
  keys, the <keyspacelen> argument determines the max
  number of values for the random number. For instance
  if set to 10 only rand:000000000000 - rand:000000000009
  range will be allowed.
 -P <numreq>        Pipeline <numreq> requests. Default 1 (no pipeline).
 -q                 Quiet. Just show query/sec values
 --csv              Output in CSV format
 -l                 Loop. Run the tests forever
 -t <tests>         Only run the comma-separated list of tests. The test
                    names are the same as the ones produced as output.
 -I                 Idle mode. Just open N idle connections and wait.

Redis-benchmark测试Redis性能


测试命令事例:

1、redis-benchmark -h 192.168.1.201 -p 6379 -c 100 -n 100000 
100个并发连接,100000个请求,检测host为localhost 端口为6379的redis服务器性能 

2、redis-benchmark -h 192.168.1.201 -p 6379 -q -d 100  

测试结果:Redis-benchmark测试Redis性能

测试存取大小为100字节的数据包的性能

3、redis-benchmark -t set,lpush -n 100000 -q

只测试某些操作的性能

4、redis-benchmark -n 100000 -q script load "redis.call('set','foo','bar')"

只测试某些数值存取的性能

 

测试结果分析:

Redis-benchmark测试Redis性能

 [[email protected] local]# ps -ef|grep redis
root       1890      1  0 18:38 ?        00:02:10 /usr/local/bin/redis-server 0.0.0.0:6379                          
root       3498   3294  0 22:30 pts/1    00:00:00 grep redis
[[email protected] local]# redis-benchmark -h 192.168.0.106 -p 6379 -c 100 -n 100000
====== PING_INLINE ======
  100000 requests completed in 0.82 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

99.03% <= 1 milliseconds
99.60% <= 2 milliseconds
99.68% <= 3 milliseconds
99.77% <= 4 milliseconds
99.79% <= 6 milliseconds
99.81% <= 7 milliseconds
99.90% <= 8 milliseconds
99.90% <= 10 milliseconds
100.00% <= 10 milliseconds
121654.50 requests per second

====== PING_BULK ======
  100000 requests completed in 0.82 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

99.89% <= 1 milliseconds
100.00% <= 1 milliseconds
122249.38 requests per second

====== SET ======
  100000 requests completed in 0.87 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

99.38% <= 1 milliseconds
99.59% <= 3 milliseconds
99.65% <= 4 milliseconds
99.68% <= 6 milliseconds
99.69% <= 7 milliseconds
99.72% <= 14 milliseconds
99.75% <= 15 milliseconds
99.82% <= 18 milliseconds
99.90% <= 19 milliseconds
99.94% <= 20 milliseconds
100.00% <= 20 milliseconds
114810.56 requests per second

====== GET ======
  100000 requests completed in 0.83 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

99.89% <= 1 milliseconds
100.00% <= 1 milliseconds
120918.98 requests per second

====== INCR ======
  100000 requests completed in 0.82 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

99.96% <= 1 milliseconds
100.00% <= 1 milliseconds
121506.68 requests per second

====== LPUSH ======
  100000 requests completed in 0.83 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

99.47% <= 1 milliseconds
99.68% <= 2 milliseconds
99.88% <= 3 milliseconds
99.97% <= 4 milliseconds
100.00% <= 5 milliseconds
100.00% <= 5 milliseconds
120481.93 requests per second

====== RPUSH ======
  100000 requests completed in 0.82 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

99.87% <= 1 milliseconds
100.00% <= 1 milliseconds
122100.12 requests per second

====== LPOP ======
  100000 requests completed in 0.83 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

99.93% <= 1 milliseconds
100.00% <= 1 milliseconds
121065.38 requests per second

====== RPOP ======
  100000 requests completed in 0.83 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

99.87% <= 1 milliseconds
100.00% <= 1 milliseconds
120481.93 requests per second

====== SADD ======
  100000 requests completed in 0.81 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

99.93% <= 1 milliseconds
100.00% <= 1 milliseconds
123001.23 requests per second

====== HSET ======
  100000 requests completed in 0.82 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

99.85% <= 1 milliseconds
99.96% <= 5 milliseconds
100.00% <= 5 milliseconds
121951.22 requests per second

====== SPOP ======
  100000 requests completed in 0.82 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

99.89% <= 1 milliseconds
100.00% <= 1 milliseconds
121506.68 requests per second

====== LPUSH (needed to benchmark LRANGE) ======
  100000 requests completed in 0.81 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

99.68% <= 1 milliseconds
99.93% <= 3 milliseconds
100.00% <= 3 milliseconds
122850.12 requests per second

====== LRANGE_100 (first 100 elements) ======
  100000 requests completed in 0.81 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

99.78% <= 1 milliseconds
100.00% <= 1 milliseconds
123152.71 requests per second

====== LRANGE_300 (first 300 elements) ======
  100000 requests completed in 0.81 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

99.86% <= 1 milliseconds
100.00% <= 1 milliseconds
123456.79 requests per second

====== LRANGE_500 (first 450 elements) ======
  100000 requests completed in 0.81 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

99.87% <= 1 milliseconds
99.98% <= 2 milliseconds
100.00% <= 3 milliseconds
100.00% <= 3 milliseconds
123152.71 requests per second

====== LRANGE_600 (first 600 elements) ======
  100000 requests completed in 0.81 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

99.90% <= 1 milliseconds
100.00% <= 1 milliseconds
122850.12 requests per second

====== MSET (10 keys) ======
  100000 requests completed in 0.73 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

99.28% <= 1 milliseconds
99.87% <= 2 milliseconds
99.88% <= 9 milliseconds
99.89% <= 10 milliseconds
99.98% <= 20 milliseconds
100.00% <= 20 milliseconds
136239.78 requests per second

Redis-benchmark测试Redis性能