最全Redis【性能 02】Redis-5(1),大牛手把手带你

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

1 additional replica(s)
S: baae7ed422dc563bbbd22e1ac2d859ba4835dd63 127.0.0.1:6374
slots: (0 slots) slave
replicates 6bb4e92cec0464c9969397eccaf1de1ce54b3e56
S: 2fddd068ad1ae78d816d2932f012fae025e4e1f8 127.0.0.1:6375
slots: (0 slots) slave
replicates 60772cf691608a8ae8e6f519b1a95b52c84b2457
S: e793d2b868dbcd0b701bae10ea4d689b13a1c650 127.0.0.1:6373
slots: (0 slots) slave
replicates ffe9663d3fd1fc55c74c7bea6c70069fb742a69f
[OK] All nodes agree about slots configuration.

Check for open slots…
Check slots coverage…
[OK] All 16384 slots covered.


#### 1.2.5 集群信息



5.集群并查看节点数据

[root@tcloud redis-5.0.14-0]# ./bin/redis-cli -c -p 6370
127.0.0.1:6370> cluster nodes
6bb4e92cec0464c9969397eccaf1de1ce54b3e56 127.0.0.1:6372@16372 master - 0 1683192656954 3 connected 10923-16383
ffe9663d3fd1fc55c74c7bea6c70069fb742a69f 127.0.0.1:6371@16371 master - 0 1683192657956 2 connected 5461-10922
60772cf691608a8ae8e6f519b1a95b52c84b2457 127.0.0.1:6370@16370 myself,master - 0 1683192655000 1 connected 0-5460
baae7ed422dc563bbbd22e1ac2d859ba4835dd63 127.0.0.1:6374@16374 slave 6bb4e92cec0464c9969397eccaf1de1ce54b3e56 0 1683192655951 5 connected
2fddd068ad1ae78d816d2932f012fae025e4e1f8 127.0.0.1:6375@16375 slave 60772cf691608a8ae8e6f519b1a95b52c84b2457 0 1683192655000 6 connected
e793d2b868dbcd0b701bae10ea4d689b13a1c650 127.0.0.1:6373@16373 slave ffe9663d3fd1fc55c74c7bea6c70069fb742a69f 0 1683192653000 4 connected


### 1.3 测试



延迟测试

./bin/redis-cli -c -p 6370 --intrinsic-latency 10

性能测试

./bin/redis-benchmark -h 127.0.0.1 -p 6370 -q


* 延迟测试结果



1

150971628 total runs (avg latency: 0.0662 microseconds / 66.24 nanoseconds per run).
Worst run took 117245x longer than the average latency.

2

149243181 total runs (avg latency: 0.0670 microseconds / 67.00 nanoseconds per run).
Worst run took 155735x longer than the average latency.

3

150936098 total runs (avg latency: 0.0663 microseconds / 66.25 nanoseconds per run).
Worst run took 87950x longer than the average latency.


* 性能测试结果



1

PING_INLINE: 62814.07
PING_BULK: 64143.68
SET: 61087.36
GET: 62344.14
INCR: 59665.87
LPUSH: 54945.05
RPUSH: 56785.91
LPOP: 55991.04
RPOP: 57208.24
SADD: 62932.66
HSET: 59347.18
SPOP: 63091.48
LPUSH (needed to benchmark LRANGE): 56211.35
LRANGE_100 (first 100 elements): 34614.05
LRANGE_300 (first 300 elements): 16131.63
LRANGE_500 (first 450 elements): 11568.72
LRANGE_600 (first 600 elements): 9214.89
MSET (10 keys): 54644.81

2

PING_INLINE: 61881.19
PING_BULK: 64267.35
SET: 61881.19
GET: 61804.70
INCR: 61387.36
LPUSH: 55555.56
RPUSH: 55370.98
LPOP: 56369.79
RPOP: 57736.72
SADD: 61614.29
HSET: 61387.36
SPOP: 63613.23
LPUSH (needed to benchmark LRANGE): 53792.36
LRANGE_100 (first 100 elements): 33681.38
LRANGE_300 (first 300 elements): 15637.22
LRANGE_500 (first 450 elements): 11828.72
LRANGE_600 (first 600 elements): 9221.69
MSET (10 keys): 52826.20

3

PING_INLINE: 63091.48
PING_BULK: 63572.79
SET: 61012.81
GET: 60569.35
INCR: 60459.49
LPUSH: 55463.12
RPUSH: 56850.48
LPOP: 55617.35
RPOP: 57570.52
SADD: 60790.27
HSET: 60168.47
SPOP: 62695.92
LPUSH (needed to benchmark LRANGE): 55679.29
LRANGE_100 (first 100 elements): 34435.26
LRANGE_300 (first 300 elements): 16064.26
LRANGE_500 (first 450 elements): 11496.90
LRANGE_600 (first 600 elements): 9180.21
MSET (10 keys): 53648.07


![在这里插入图片描述](https://img-blog.csdnimg.cn/27f233a5ce9d4b2392abf4b180c723b1.png#pic_center)


## 2.Docker集群


### 2.1 环境



[root@tcloud ~]# docker -v
Docker version 20.10.13, build a224086


Redis的官方Docker镜像地址:https://hub.docker.com/\_/redis


### 2.2 搭建


#### 2.2.1 创建专用网络



创建桥接网卡

docker network create redis --subnet 172.81.0.0/16

查看所有 网卡

docker network ls

查看网卡详情

docker network inspect NETWORKID

[
{
“Name”: “redis”,
“Id”: “79a62c1104195f5f077665fcdd8d4e1c92697af7db227c1fd1a92219f22c2501”,
“Created”: “2023-05-05T10:38:24.604493511+08:00”,
“Scope”: “local”,
“Driver”: “bridge”,
“EnableIPv6”: false,
“IPAM”: {
“Driver”: “default”,
“Options”: {},
“Config”: [
{
“Subnet”: “172.81.0.0/16”,
“Gateway”: “172.81.0.1”
}
]
},
“Internal”: false,
“Attachable”: false,
“Ingress”: false,
“ConfigFrom”: {
“Network”: “”
},
“ConfigOnly”: false,
“Containers”: {},
“Options”: {},
“Labels”: {}
}
]


#### 2.2.2 生成配置文件



通过脚本创建6个Redis配置

这里一定要注意不要加 daemonize yes 否则无法启动

for port in ( s e q 16 ) ;   d o   m k d i r − p / u s r / l o c a l / r e d i s − d o c k e r / n o d e − (seq 1 6); \ do \ mkdir -p /usr/local/redis-docker/node- (seq16); do mkdirp/usr/local/redisdocker/node{port}/conf
touch /usr/local/redis-docker/node- p o r t / c o n f / r e d i s . c o n f c a t < < E O F > / u s r / l o c a l / r e d i s − d o c k e r / n o d e − {port}/conf/redis.conf cat << EOF >/usr/local/redis-docker/node- port/conf/redis.confcat<<EOF>/usr/local/redisdocker/node{port}/conf/redis.conf
bind 0.0.0.0
protected-mode no
port 637 p o r t c l u s t e r − e n a b l e d y e s c l u s t e r − c o n f i g − f i l e n o d e s . c o n f c l u s t e r − n o d e − t i m e o u t 5000 c l u s t e r − a n n o u n c e − i p 172.81.0.1 {port} cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 cluster-announce-ip 172.81.0.1 portclusterenabledyesclusterconfigfilenodes.confclusternodetimeout5000clusterannounceip172.81.0.1{port}
cluster-announce-port 637 p o r t c l u s t e r − a n n o u n c e − b u s − p o r t 1637 {port} cluster-announce-bus-port 1637 portclusterannouncebusport1637{port}
appendonly no
EOF
done


#### 2.2.3 容器启动及验证



启动容器

for port in ( s e q 16 ) ;   d o   d o c k e r r u n − p 637 (seq 1 6); \ do \ docker run -p 637 (seq16); do dockerrunp637{port}:637 p o r t − p 1637 {port} -p 1637 portp1637{port}:1637 p o r t − − n a m e r e d i s − {port} --name redis- portnameredis{port}
-v /usr/local/redis-docker/node- p o r t / d a t a : / d a t a   − v / u s r / l o c a l / r e d i s − d o c k e r / n o d e − {port}/data:/data \ -v /usr/local/redis-docker/node- port/data:/data v/usr/local/redisdocker/node{port}/conf/redis.conf:/etc/redis/redis.conf
-d --net redis --ip 172.81.0.1${port} redis:5.0.14 redis-server /etc/redis/redis.conf
done

查看启动状态

[root@tcloud local]# docker ps | grep redis
a4e70ff2d840 redis:5.0.14 “docker-entrypoint.s…” 48 seconds ago Up 46 seconds 0.0.0.0:6376->6376/tcp, :::6376->6376/tcp, 0.0.0.0:16376->16376/tcp, :::16376->16376/tcp, 6379/tcp redis-6
854f8e023ce1 redis:5.0.14 “docker-entrypoint.s…” 49 seconds ago Up 47 seconds 0.0.0.0:6375->6375/tcp, :::6375->6375/tcp, 0.0.0.0:16375->16375/tcp, :::16375->16375/tcp, 6379/tcp redis-5
5165d1e61a7f redis:5.0.14 “docker-entrypoint.s…” 50 seconds ago Up 48 seconds 0.0.0.0:6374->6374/tcp, :::6374->6374/tcp, 0.0.0.0:16374->16374/tcp, :::16374->16374/tcp, 6379/tcp redis-4
f08dbda27366 redis:5.0.14 “docker-entrypoint.s…” 51 seconds ago Up 50 seconds 0.0.0.0:6373->6373/tcp, :::6373->6373/tcp, 0.0.0.0:16373->16373/tcp, :::16373->16373/tcp, 6379/tcp redis-3
e5e0feb9546a redis:5.0.14 “docker-entrypoint.s…” 52 seconds ago Up 51 seconds 0.0.0.0:6372->6372/tcp, :::6372->6372/tcp, 0.0.0.0:16372->16372/tcp, :::16372->16372/tcp, 6379/tcp redis-2
d8fae67a40b2 redis:5.0.14 “docker-entrypoint.s…” 54 seconds ago Up 52 seconds 0.0.0.0:6371->6371/tcp, :::6371->6371/tcp, 0.0.0.0:16371->16371/tcp, :::16371->16371/tcp, 6379/tcp redis-1


#### 2.2.4 创建集群



创建集群

docker exec -it redis-1 /bin/sh

容器内操作

cd /usr/local/bin
redis-cli --cluster create 172.81.0.11:6371 172.81.0.12:6372 172.81.0.13:6373 172.81.0.14:6374 172.81.0.15:6375 172.81.0.16:6376 --cluster-replicas 1

打印出来的信息不再贴出

连接集群

cd /usr/local/redis-5.0.14
./bin/redis-cli -p 6371 -c
cluster nodes

退出容器

exit


#### 2.2.5 删除容器及配置文件



停止

for port in ( s e q 16 ) ;   d o   d o c k e r s t o p r e d i s − (seq 1 6); \ do \ docker stop redis- (seq16); do dockerstopredis{port}
done

删除停止的容器

docker rm $(docker ps -qa)

删除配置及数据文件

rm -rf ./redis-docker


### 2.3.测试



延迟测试

./bin/redis-cli -c -p 6371 --intrinsic-latency 10

性能测试

./bin/redis-benchmark -h 172.81.0.1 -p 6371 -q


* 延迟测试结果



1

148915461 total runs (avg latency: 0.0672 microseconds / 67.15 nanoseconds per run).
Worst run took 172533x longer than the average latency.

2

148930804 total runs (avg latency: 0.0671 microseconds / 67.15 nanoseconds per run).
Worst run took 147203x longer than the average latency.

3

149999312 total runs (avg latency: 0.0667 microseconds / 66.67 nanoseconds per run).
Worst run took 119474x longer than the average latency.


* 性能测试结果



1

PING_INLINE: 49212.60
PING_BULK: 50327.12
SET: 48590.86
GET: 47846.89
INCR: 48923.68
LPUSH: 44863.16
RPUSH: 45106.00
LPOP: 45599.63
RPOP: 44682.75
SADD: 50377.83
HSET: 48239.27
SPOP: 50479.56
LPUSH (needed to benchmark LRANGE): 44345.89
LRANGE_100 (first 100 elements): 29691.21
LRANGE_300 (first 300 elements): 14858.84
LRANGE_500 (first 450 elements): 11119.76
LRANGE_600 (first 600 elements): 8946.94
MSET (10 keys): 43859.65

2

PING_INLINE: 49975.02
PING_BULK: 51493.30
SET: 47664.44
GET: 49358.34
INCR: 49358.34
LPUSH: 44822.95
RPUSH: 45146.73
LPOP: 44404.97
RPOP: 45703.84
SADD: 50125.31
HSET: 45829.52
SPOP: 49701.79
LPUSH (needed to benchmark LRANGE): 42643.92

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取
42643.92

[外链图片转存中…(img-ZUHpQC8A-1715386218475)]
[外链图片转存中…(img-pPiIiiFV-1715386218476)]
[外链图片转存中…(img-FFbdTGSL-1715386218476)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

  • 13
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值