这只是一个笔记,不含分析,不含参数变化的严谨对比。
性能结果初步列举
- 所有命令,峰值在11万+
- 99.9%以上的命令,执行时间 < 1ms
- 连接数100的性能,会比连接数50低约10%
- 相同条件的测试,多次执行的效果可能有差异,特别是个别命令偶尔可能呈现几倍的差异(暂不知原因)
测试条件
阿里云双核云主机 2核8G:
- Intel® Xeon® Platinum 8163 CPU @ 2.50GHz
- redis-benchmark与redis-server跑在同一台机器
- 版本 redis-server 4.0.10
[root@svr1 bin]# ./redis-benchmark -c 30 -n 100000 -d 5
====== PING_INLINE ======
100000 requests completed in 0.89 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.83% <= 1 milliseconds
99.88% <= 2 milliseconds
99.96% <= 3 milliseconds
99.97% <= 4 milliseconds
99.98% <= 5 milliseconds
100.00% <= 5 milliseconds
111731.84 requests per second
====== PING_BULK ======
100000 requests completed in 0.89 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.91% <= 1 milliseconds
100.00% <= 1 milliseconds
111856.82 requests per second
====== SET ======
100000 requests completed in 0.89 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.91% <= 1 milliseconds
99.94% <= 2 milliseconds
100.00% <= 2 milliseconds
112107.62 requests per second
====== GET ======
100000 requests completed in 0.89 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.97% <= 2 milliseconds
100.00% <= 2 milliseconds
112739.57 requests per second
====== INCR ======
100000 requests completed in 0.90 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.95% <= 1 milliseconds
99.96% <= 4 milliseconds
99.97% <= 5 milliseconds
100.00% <= 5 milliseconds
111482.72 requests per second
====== LPUSH ======
100000 requests completed in 0.91 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.94% <= 1 milliseconds
99.96% <= 2 milliseconds
99.98% <= 3 milliseconds
99.99% <= 8 milliseconds
100.00% <= 8 milliseconds
110253.59 requests per second
====== RPUSH ======
100000 requests completed in 0.89 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.91% <= 1 milliseconds
100.00% <= 1 milliseconds
111731.84 requests per second
====== LPOP ======
100000 requests completed in 0.90 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.88% <= 1 milliseconds
99.97% <= 8 milliseconds
99.98% <= 9 milliseconds
100.00% <= 9 milliseconds
111482.72 requests per second
====== RPOP ======
100000 requests completed in 0.89 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.96% <= 1 milliseconds
100.00% <= 1 milliseconds
111856.82 requests per second
====== SADD ======
100000 requests completed in 0.89 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.91% <= 1 milliseconds
99.94% <= 2 milliseconds
99.97% <= 4 milliseconds
100.00% <= 4 milliseconds
112107.62 requests per second
====== HSET ======
100000 requests completed in 0.90 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.92% <= 3 milliseconds
99.97% <= 8 milliseconds
100.00% <= 8 milliseconds
111111.12 requests per second
====== SPOP ======
100000 requests completed in 0.90 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.95% <= 1 milliseconds
99.99% <= 7 milliseconds
100.00% <= 7 milliseconds
110741.97 requests per second
====== LPUSH (needed to benchmark LRANGE) ======
100000 requests completed in 0.88 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.97% <= 1 milliseconds
100.00% <= 1 milliseconds
113507.38 requests per second
====== LRANGE_100 (first 100 elements) ======
100000 requests completed in 0.88 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.93% <= 1 milliseconds
99.99% <= 3 milliseconds
100.00% <= 3 milliseconds
113122.17 requests per second
====== LRANGE_300 (first 300 elements) ======
100000 requests completed in 0.89 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.94% <= 1 milliseconds
99.96% <= 2 milliseconds
99.98% <= 3 milliseconds
99.99% <= 5 milliseconds
100.00% <= 5 milliseconds
111982.08 requests per second
====== LRANGE_500 (first 450 elements) ======
100000 requests completed in 0.90 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.93% <= 1 milliseconds
99.96% <= 2 milliseconds
99.99% <= 5 milliseconds
100.00% <= 5 milliseconds
111607.14 requests per second
====== LRANGE_600 (first 600 elements) ======
100000 requests completed in 0.89 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.97% <= 5 milliseconds
99.99% <= 6 milliseconds
100.00% <= 6 milliseconds
111856.82 requests per second
====== MSET (10 keys) ======
100000 requests completed in 0.86 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.95% <= 1 milliseconds
100.00% <= 1 milliseconds
116414.43 requests per second
[root@svr1 bin]#
[root@svr1 bin]# ./redis-benchmark -c 30 -n 100000 -d 5
====== PING_INLINE ======
100000 requests completed in 0.89 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.94% <= 1 milliseconds
99.98% <= 2 milliseconds
100.00% <= 2 milliseconds
112739.57 requests per second
====== PING_BULK ======
100000 requests completed in 0.90 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.94% <= 1 milliseconds
99.99% <= 2 milliseconds
100.00% <= 2 milliseconds
111111.12 requests per second
====== SET ======
100000 requests completed in 0.92 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.85% <= 1 milliseconds
99.91% <= 2 milliseconds
99.93% <= 5 milliseconds
99.97% <= 6 milliseconds
99.97% <= 7 milliseconds
100.00% <= 7 milliseconds
109170.30 requests per second
====== GET ======
100000 requests completed in 0.90 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.96% <= 1 milliseconds
99.97% <= 6 milliseconds
100.00% <= 6 milliseconds
111482.72 requests per second
====== INCR ======
100000 requests completed in 0.93 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.81% <= 1 milliseconds
99.90% <= 2 milliseconds
99.93% <= 4 milliseconds
99.99% <= 5 milliseconds
100.00% <= 5 milliseconds
107526.88 requests per second
====== LPUSH ======
100000 requests completed in 0.89 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.95% <= 1 milliseconds
99.97% <= 2 milliseconds
100.00% <= 2 milliseconds
111731.84 requests per second
====== RPUSH ======
100000 requests completed in 0.90 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.90% <= 1 milliseconds
99.94% <= 3 milliseconds
99.95% <= 4 milliseconds
100.00% <= 4 milliseconds
111234.70 requests per second
====== LPOP ======
100000 requests completed in 0.92 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.91% <= 1 milliseconds
99.94% <= 2 milliseconds
99.96% <= 7 milliseconds
100.00% <= 7 milliseconds
108813.92 requests per second
====== RPOP ======
100000 requests completed in 0.92 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.91% <= 1 milliseconds
99.94% <= 5 milliseconds
99.97% <= 9 milliseconds
100.00% <= 9 milliseconds
109170.30 requests per second
====== SADD ======
100000 requests completed in 0.89 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.96% <= 1 milliseconds
99.97% <= 2 milliseconds
100.00% <= 2 milliseconds
111856.82 requests per second
====== HSET ======
100000 requests completed in 0.89 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.97% <= 2 milliseconds
100.00% <= 2 milliseconds
112612.61 requests per second
====== SPOP ======
100000 requests completed in 0.89 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.97% <= 1 milliseconds
99.98% <= 4 milliseconds
100.00% <= 4 milliseconds
112233.45 requests per second
====== LPUSH (needed to benchmark LRANGE) ======
100000 requests completed in 0.89 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.95% <= 3 milliseconds
99.97% <= 4 milliseconds
100.00% <= 5 milliseconds
100.00% <= 5 milliseconds
112233.45 requests per second
====== LRANGE_100 (first 100 elements) ======
100000 requests completed in 0.90 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.86% <= 1 milliseconds
99.94% <= 2 milliseconds
99.97% <= 5 milliseconds
100.00% <= 5 milliseconds
111111.12 requests per second
====== LRANGE_300 (first 300 elements) ======
100000 requests completed in 0.89 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.93% <= 1 milliseconds
100.00% <= 1 milliseconds
112107.62 requests per second
====== LRANGE_500 (first 450 elements) ======
100000 requests completed in 0.88 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.94% <= 1 milliseconds
99.97% <= 2 milliseconds
100.00% <= 2 milliseconds
112994.35 requests per second
====== LRANGE_600 (first 600 elements) ======
100000 requests completed in 0.89 seconds
30 parallel clients
5 bytes payload
keep alive: 1
99.93% <= 1 milliseconds
99.97% <= 8 milliseconds
100.00% <= 8 milliseconds
112739.57 requests per second
====== MSET (10 keys) ======
100000 requests completed in 0.85 seconds
30 parallel clients
5 bytes payload
keep alive: 1
100.00% <= 0 milliseconds
117370.89 requests per second