(十二)高并发redis学习笔记:对redis主从架构redis-benchmark压测

本文介绍了在1核1G的环境下,使用redis-benchmark对一主一从的Redis架构进行压测,探讨了单实例的读写QPS,并讨论了通过增加从节点来提升读取吞吐量的方法。根据测试,单个从节点可处理约5万QPS,双从节点可达到10万+。这是作者的学习笔记,旨在分享个人技术积累,欢迎指正。

前提
1.上一小结,搭建好了一主一从的redis架构
2.redis自己提供的redis-benchmark压测工具,是最快捷最方便的。


1、对redis读写分离架构进行压测,单实例写QPS+单实例读QPS

cd /usr/local/redis-3.2.8/src
./redis-benchmark -h 192.168.8.187

主要的命令格式:
-c 模拟多少个客户端发送请求,默认50
-n 请求总数(默认 100000)
-d 数据大小:(默认 2)

我的机器时1核1G,虚拟机

[root@cache01 redis-3.2.8]# cd /usr/local/redis-3.2.8/src/
[root@cache01 src]# ./redis-benchmark -h 192.168.8.181
====== PING_INLINE ======
  100000 requests completed in 2.55 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

78.09% <= 1 milliseconds
96.26% <= 2 milliseconds
99.45% <= 3 milliseconds
99.80% <= 4 milliseconds
99.88% <= 5 milliseconds
99.90% <= 7 milliseconds
99.95% <= 11 milliseconds
99.96% <= 12 milliseconds
99.99% <= 13 milliseconds
100.00% <= 13 milliseconds
39231.07 requests per second

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

76.36% <= 1 milliseconds
96.60% <= 2 milliseconds
99.50% <= 3 milliseconds
99.77% <= 4 milliseconds
99.87% <= 5 milliseconds
99.89% <= 6 milliseconds
99.90% <= 8 milliseconds
99.95% <= 9 milliseconds
99.95% <= 13 milliseconds
99.99% <= 14 milliseconds
100.00% <= 14 milliseconds
38759.69 requests per second

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

66.38% <= 1 milliseconds
92.05% <= 2 milliseconds
97.89% <= 3 milliseconds
99.28% <= 4 milliseconds
99.83% <= 5 milliseconds
99.94% <= 6 milliseconds
99.99% <= 7 milliseconds
100.00% <= 7 milliseconds
33681.38 requests per second

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

77.38% <= 1 milliseconds
96.29% <= 2 milliseconds
99.69% <= 3 milliseconds
99.96% <= 4 milliseconds
100.00% <= 5 milliseconds
39401.10 requests per second

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

72.91% <= 1 milliseconds
95.20% <= 2 milliseconds
98.89% <= 3 milliseconds
99.54% <= 4 milliseconds
99.75% <= 5 milliseconds
99.86% <= 6 milliseconds
99.93% <= 7 milliseconds
99.96% <= 8 milliseconds
99.97% <= 11 milliseconds
99.98% <= 12 milliseconds
99.98% <= 18 milliseconds
99.98% <= 23 milliseconds
99.99% <= 24 milliseconds
100.00% <= 24 milliseconds
36416.61 requests per second

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

73.04% <= 1 milliseconds
95.10% <= 2 milliseconds
98.89% <= 3 milliseconds
99.54% <= 4 milliseconds
99.91% <= 5 milliseconds
99.95% <= 10 milliseconds
99.96% <= 11 milliseconds
99.98% <= 12 milliseconds
100.00% <= 12 milliseconds
36995.93 requests per second

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

59.93% <= 1 milliseconds
90.73% <= 2 milliseconds
97.81% <= 3 milliseconds
99.49% <= 4 milliseconds
99.81% <= 5 milliseconds
99.90% <= 6 milliseconds
99.96% <= 7 milliseconds
99.99% <= 8 milliseconds
100.00% <= 9 milliseconds
31645.57 requests per second

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

72.06% <= 1 milliseconds
94.60% <= 2 milliseconds
98.81% <= 3 milliseconds
99.58% <= 4 milliseconds
99.79% <= 5 milliseconds
99.91% <= 6 milliseconds
99.96% <= 7 milliseconds
99.98% <= 8 milliseconds
100.00% <= 8 milliseconds
36469.73 requests per second

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

72.58% <= 1 milliseconds
95.13% <= 2 milliseconds
99.14% <= 3 milliseconds
99.74% <= 4 milliseconds
99.85% <= 5 milliseconds
100.00% <= 5 milliseconds
36982.25 requests per second

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

65.65% <= 1 milliseconds
93.31% <= 2 milliseconds
98.32% <= 3 milliseconds
99.37% <= 4 milliseconds
99.59% <= 5 milliseconds
99.75% <= 6 milliseconds
99.86% <= 7 milliseconds
99.91% <= 8 milliseconds
99.93% <= 9 milliseconds
99.96% <= 12 milliseconds
99.96% <= 13 milliseconds
99.97% <= 14 milliseconds
99.98% <= 51 milliseconds
100.00% <= 51 milliseconds
33411.29 requests per second

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

68.93% <= 1 milliseconds
94.58% <= 2 milliseconds
99.08% <= 3 milliseconds
99.77% <= 4 milliseconds
99.93% <= 5 milliseconds
99.98% <= 6 milliseconds
100.00% <= 7 milliseconds
35637.92 requests per second

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

54.32% <= 1 milliseconds
89.35% <= 2 milliseconds
97.53% <= 3 milliseconds
99.10% <= 4 milliseconds
99.73% <= 5 milliseconds
99.83% <= 6 milliseconds
99.93% <= 7 milliseconds
99.99% <= 8 milliseconds
100.00% <= 8 milliseconds
29931.16 requests per second

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

68.46% <= 1 milliseconds
93.82% <= 2 milliseconds
98.71% <= 3 milliseconds
99.51% <= 4 milliseconds
99.86% <= 5 milliseconds
99.95% <= 6 milliseconds
99.97% <= 7 milliseconds
100.00% <= 7 milliseconds
35174.11 requests per second

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

62.49% <= 1 milliseconds
91.04% <= 2 milliseconds
97.55% <= 3 milliseconds
99.15% <= 4 milliseconds
99.74% <= 5 milliseconds
99.92% <= 6 milliseconds
99.95% <= 7 milliseconds
99.96% <= 8 milliseconds
99.99% <= 9 milliseconds
100.00% <= 9 milliseconds
32383.42 requests per second

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

66.40% <= 1 milliseconds
92.29% <= 2 milliseconds
97.66% <= 3 milliseconds
99.08% <= 4 milliseconds
99.57% <= 5 milliseconds
99.69% <= 6 milliseconds
99.77% <= 7 milliseconds
99.81% <= 8 milliseconds
99.84% <= 9 milliseconds
99.87% <= 10 milliseconds
99.92% <= 11 milliseconds
99.92% <= 15 milliseconds
99.96% <= 16 milliseconds
99.97% <= 18 milliseconds
99.98% <= 19 milliseconds
99.99% <= 35 milliseconds
100.00% <= 35 milliseconds
33090.67 requests per second

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

57.99% <= 1 milliseconds
89.38% <= 2 milliseconds
97.58% <= 3 milliseconds
99.35% <= 4 milliseconds
99.74% <= 5 milliseconds
99.94% <= 6 milliseconds
99.99% <= 7 milliseconds
99.99% <= 8 milliseconds
100.00% <= 9 milliseconds
100.00% <= 9 milliseconds
30788.18 requests per second

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

59.27% <= 1 milliseconds
92.98% <= 2 milliseconds
98.76% <= 3 milliseconds
99.79% <= 4 milliseconds
99.95% <= 5 milliseconds
99.95% <= 7 milliseconds
99.96% <= 8 milliseconds
99.98% <= 9 milliseconds
100.00% <= 9 milliseconds
33704.08 requests per second

大概可以看出,各种请求在某个时间阈值内返回的数据,大概占比多少。以及每秒钟的请求数量多少。

2、水平扩容redis读节点,提升度吞吐量
一般来说,单个从节点读请QPS在5万左右,两个redis从节点,所有的读请求打到两台机器上去,承载整个集群读QPS在10万+。
此文章仅代表自己(本菜鸟)学习积累记录,或者学习笔记,如有侵权,请联系作者删除。人无完人,文章也一样,文笔稚嫩,在下不才,勿喷,如果有错误之处,还望指出,感激不尽~

技术之路不在一时,山高水长,纵使缓慢,驰而不息。

公众号:秦怀杂货店

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值