Mac mini (2018)
- OS: macOS 11.5.1 (20G80)
- CPU: 3.2GHz 6-core Intel Core i7
客户端和服务端在同一台机器
redis-benchmark -t set,get,rpush,lpop,lrange,hset -n 1000000 -r 100000 -c 1000 --threads 4 --csv
看起来差距不大,但是有几个需要注意的点:
- 测试
rudis
的时候,rudis
的 cpu 利用率 峰值大约 330%,redis-benchmark
几乎 400%. 也就是压测工具跑满了,rudis
还没跑满, 其实没压到 rudis 的瓶颈。 - 测试
redis
的时候,redis
的 cpu 利用率 峰值大约 400%,redis-benchmark
大约 300% . 也就是压测工具没跑满了,redis
跑满了。 - 不过即使是这样,
rudis
的性能表现还是比redis
要好。 - 如果有条件,把
redis-benchmark
放在另一台机器上,rudis
应该可以跑出更好的数据。 - 如果有条件,用更多的线程,
rudis
的性能大概率会更好。但是redis
受限于 io, 性能基本上就这样了。
test | rps | avg_latency_ms | min_latency_ms | p50_latency_ms | p95_latency_ms | p99_latency_ms | max_latency_ms |
---|---|---|---|---|---|---|---|
SET | 221582.09 | 3.239 | 0.472 | 3.151 | 5.007 | 5.895 | 8.455 |
GET | 221533.02 | 3.229 | 0.352 | 3.175 | 4.735 | 5.855 | 6.839 |
RPUSH | 221483.95 | 3.302 | 0.672 | 3.231 | 4.887 | 5.935 | 7.871 |
LPOP | 209819.56 | 3.414 | 0.648 | 3.319 | 5.143 | 5.919 | 27.935 |
HSET | 209951.70 | 3.420 | 1.032 | 3.375 | 4.807 | 5.911 | 8.503 |
LPUSH (needed to benchmark LRANGE) | 209775.53 | 3.413 | 0.936 | 3.335 | 4.783 | 5.919 | 27.231 |
LRANGE_100 (first 100 elements) | 83948.96 | 6.092 | 2.680 | 5.703 | 7.567 | 8.279 | 161.279 |
LRANGE_300 (first 300 elements) | 38735.67 | 13.006 | 2.336 | 12.487 | 16.927 | 18.495 | 198.911 |
LRANGE_500 (first 500 elements) | 25843.13 | 19.248 | 2.464 | 19.167 | 25.071 | 27.135 | 101.183 |
LRANGE_600 (first 600 elements) | 21827.87 | 22.752 | 2.288 | 22.703 | 29.935 | 31.967 | 100.991 |
test | rps | avg_latency_ms | min_latency_ms | p50_latency_ms | p95_latency_ms | p99_latency_ms | max_latency_ms |
---|---|---|---|---|---|---|---|
SET | 159744.41 | 5.363 | 1.880 | 5.455 | 7.367 | 8.879 | 26.751 |
GET | 166417.05 | 5.012 | 1.808 | 5.239 | 6.511 | 7.247 | 29.199 |
RPUSH | 166334.00 | 5.171 | 1.856 | 5.399 | 6.703 | 7.559 | 25.647 |
LPOP | 159693.39 | 5.256 | 1.952 | 5.455 | 6.927 | 7.631 | 28.495 |
HSET | 147907.11 | 5.612 | 2.120 | 5.823 | 7.279 | 8.031 | 35.967 |
LPUSH (needed to benchmark LRANGE) | 153562.66 | 5.490 | 1.968 | 5.567 | 7.231 | 8.343 | 130.111 |
LRANGE_100 (first 100 elements) | 61282.02 | 13.901 | 2.632 | 13.911 | 17.103 | 18.527 | 139.007 |
LRANGE_300 (first 300 elements) | 29683.28 | 24.178 | 1.448 | 23.791 | 35.807 | 42.047 | 144.255 |
LRANGE_500 (first 500 elements) | 19749.96 | 35.496 | 1.424 | 35.167 | 53.695 | 62.303 | 129.215 |
LRANGE_600 (first 600 elements) | 16997.84 | 40.824 | 1.384 | 40.607 | 62.079 | 71.103 | 128.895 |