目录
目的
从3主3从集群配置为4主4从集群
工作环境
系统版本:cetenos7
主机IP地址:192.168.10.150/24
docker版本:version 20.10.19 docker安装请访问:【kubernetes】k8s集群搭建(完整详解)_维运的博客-CSDN博客_如何搭建k8s集群
redis集群的redis版本:redis:6.0.8
redis集群安装请访问:基于docker配置3主3从redis集群配置(详细)
redis集群收缩请访问:
#查看容器
[root@hadoop01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
19bec82ec7eb redis:6.0.8 "docker-entrypoint.s…" 9 days ago Up 4 minutes redis-node-6
65cd347c7dd1 redis:6.0.8 "docker-entrypoint.s…" 9 days ago Up 4 minutes redis-node-5
1b126a9c39b9 redis:6.0.8 "docker-entrypoint.s…" 9 days ago Up 4 minutes redis-node-4
b32e932f2093 redis:6.0.8 "docker-entrypoint.s…" 9 days ago Up 4 minutes redis-node-3
d41a6f46e0b4 redis:6.0.8 "docker-entrypoint.s…" 9 days ago Up 4 minutes redis-node-2
c8848665b380 redis:6.0.8 "docker-entrypoint.s…" 9 days ago Up 4 minutes redis-node-1
一、配置
1、启动一个容器
[root@hadoop01 ~]# docker run -d --name redis-node-7 --net host --privileged=true -v /data/redis/share/redis-node-7:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6387
[root@hadoop01 ~]# docker run -d --name redis-node-8 --net host --privileged=true -v /data/redis/share/redis-node-8:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388
[root@hadoop01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
24c04bf20f43 redis:6.0.8 "docker-entrypoint.s…" 24 seconds ago Up 23 seconds redis-node-8
4f3e750cf219 redis:6.0.8 "docker-entrypoint.s…" About a minute ago Up About a minute redis-node-7
19bec82ec7eb redis:6.0.8 "docker-entrypoint.s…" 9 days ago Up 24 minutes redis-node-6
65cd347c7dd1 redis:6.0.8 "docker-entrypoint.s…" 9 days ago Up 24 minutes redis-node-5
1b126a9c39b9 redis:6.0.8 "docker-entrypoint.s…" 9 days ago Up 24 minutes redis-node-4
b32e932f2093 redis:6.0.8 "docker-entrypoint.s…" 9 days ago Up 24 minutes redis-node-3
d41a6f46e0b4 redis:6.0.8 "docker-entrypoint.s…" 9 days ago Up 24 minutes redis-node-2
c8848665b380 redis:6.0.8 "docker-entrypoint.s…" 9 days ago Up 24 minutes redis-node-1
2、将主节点加入到集群
1)配置
[root@hadoop01 ~]# docker exec -it redis-node-7 /bin/bash
root@hadoop01:/data# redis-cli --cluster add-node 192.168.10.150:6387 192.168.10.150:6381
6387作为新加入的节点,6381相当于是原集群的领路人
2)查看集群
root@hadoop01:/data# redis-cli --cluster check 192.168.10.150:6381
192.168.10.150:6381 (b4e13e9a...) -> 0 keys | 5461 slots | 1 slaves.
192.168.10.150:6382 (73e2e7a0...) -> 0 keys | 5462 slots | 1 slaves.
192.168.10.150:6383 (d524fd7d...) -> 0 keys | 5461 slots | 1 slaves.
192.168.10.150:6387 (946de8cf...) -> 0 keys | 0 slots | 0 slaves.
[OK] 0 keys in 4 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.10.150:6381)
M: b4e13e9a0ca02cff80d0bc20b86f770017702fb0 192.168.10.150:6381
slots:[0-5460] (5461 slots) master
1 additional replica(s)
M: 73e2e7a084046769cee07d509985676752ba4f48 192.168.10.150:6382
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
S: f7dfc65dbcc61f58556e63d15ad6940629b6a3c9 192.168.10.150:6386
slots: (0 slots) slave
replicates b4e13e9a0ca02cff80d0bc20b86f770017702fb0
M: d524fd7d16ccc654cbfa2d338978f6ede0bdc8f4 192.168.10.150:6383
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
S: 672e19c7d8522e436628d16c5bf0e6f199fabd31 192.168.10.150:6385
slots: (0 slots) slave
replicates d524fd7d16ccc654cbfa2d338978f6ede0bdc8f4
M: 946de8cf640a3dd010b72ec73f53a18be1732129 192.168.10.150:6387
slots: (0 slots) master
S: 9d9441cccec2307c7a7ac239dd67ce5194ce0e3a 192.168.10.150:6384
slots: (0 slots) slave
replicates 73e2e7a084046769cee07d509985676752ba4f48
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
192.168.10.150:6387 (946de8cf...) -> 0 keys | 0 slots | 0 slaves.
可以看到并没有为6387分配哈希槽
3、重新分配槽号
1)配置
root@hadoop01:/data# redis-cli --cluster reshard 192.168.10.150:6381
1、
这里需要填16384除以master数量,也就是16384除以4个主节点等于4096
2、
这里填6387节点的id,就是下面的946de8cf640a3dd010b72ec73f53a18be1732129
3、
这里选择all
4、
2)查看集群
root@hadoop01:/data# redis-cli --cluster check 192.168.10.150:6381
192.168.10.150:6381 (b4e13e9a...) -> 0 keys | 4096 slots | 1 slaves.
192.168.10.150:6382 (73e2e7a0...) -> 0 keys | 4096 slots | 1 slaves.
192.168.10.150:6383 (d524fd7d...) -> 0 keys | 4096 slots | 1 slaves.
192.168.10.150:6387 (946de8cf...) -> 0 keys | 4096 slots | 0 slaves.
[OK] 0 keys in 4 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.10.150:6381)
M: b4e13e9a0ca02cff80d0bc20b86f770017702fb0 192.168.10.150:6381
slots:[1365-5460] (4096 slots) master
1 additional replica(s)
M: 73e2e7a084046769cee07d509985676752ba4f48 192.168.10.150:6382
slots:[6827-10922] (4096 slots) master
1 additional replica(s)
S: f7dfc65dbcc61f58556e63d15ad6940629b6a3c9 192.168.10.150:6386
slots: (0 slots) slave
replicates b4e13e9a0ca02cff80d0bc20b86f770017702fb0
M: d524fd7d16ccc654cbfa2d338978f6ede0bdc8f4 192.168.10.150:6383
slots:[12288-16383] (4096 slots) master
1 additional replica(s)
S: 672e19c7d8522e436628d16c5bf0e6f199fabd31 192.168.10.150:6385
slots: (0 slots) slave
replicates d524fd7d16ccc654cbfa2d338978f6ede0bdc8f4
M: 946de8cf640a3dd010b72ec73f53a18be1732129 192.168.10.150:6387
slots:[0-1364],[5461-6826],[10923-12287] (4096 slots) master
S: 9d9441cccec2307c7a7ac239dd67ce5194ce0e3a 192.168.10.150:6384
slots: (0 slots) slave
replicates 73e2e7a084046769cee07d509985676752ba4f48
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
#可以发现6387的哈希槽范围是从其他3个节点拿了一点
4、将主节点6387分配从节点 6388
1)配置
root@hadoop01:/data# redis-cli --cluster add-node 192.168.10.150:6388 192.168.10.150:6387 --cluster-slave --cluster-master-id 946de8cf640a3dd010b72ec73f53a18be1732129
#后面是6387的id,实际根据自己的情况而写
2)检查集群
root@hadoop01:/data# redis-cli --cluster check 192.168.10.150:6381
192.168.10.150:6381 (b4e13e9a...) -> 0 keys | 4096 slots | 1 slaves.
192.168.10.150:6382 (73e2e7a0...) -> 0 keys | 4096 slots | 1 slaves.
192.168.10.150:6383 (d524fd7d...) -> 0 keys | 4096 slots | 1 slaves.
192.168.10.150:6387 (946de8cf...) -> 0 keys | 4096 slots | 1 slaves.
[OK] 0 keys in 4 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.10.150:6381)
M: b4e13e9a0ca02cff80d0bc20b86f770017702fb0 192.168.10.150:6381
slots:[1365-5460] (4096 slots) master
1 additional replica(s)
M: 73e2e7a084046769cee07d509985676752ba4f48 192.168.10.150:6382
slots:[6827-10922] (4096 slots) master
1 additional replica(s)
S: f7dfc65dbcc61f58556e63d15ad6940629b6a3c9 192.168.10.150:6386
slots: (0 slots) slave
replicates b4e13e9a0ca02cff80d0bc20b86f770017702fb0
M: d524fd7d16ccc654cbfa2d338978f6ede0bdc8f4 192.168.10.150:6383
slots:[12288-16383] (4096 slots) master
1 additional replica(s)
S: 713bbd602200a028d9efd890b64741284c753ef3 192.168.10.150:6388
slots: (0 slots) slave
replicates 946de8cf640a3dd010b72ec73f53a18be1732129
S: 672e19c7d8522e436628d16c5bf0e6f199fabd31 192.168.10.150:6385
slots: (0 slots) slave
replicates d524fd7d16ccc654cbfa2d338978f6ede0bdc8f4
M: 946de8cf640a3dd010b72ec73f53a18be1732129 192.168.10.150:6387
slots:[0-1364],[5461-6826],[10923-12287] (4096 slots) master
1 additional replica(s)
S: 9d9441cccec2307c7a7ac239dd67ce5194ce0e3a 192.168.10.150:6384
slots: (0 slots) slave
replicates 73e2e7a084046769cee07d509985676752ba4f48
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
完成!
redis集群收缩为3主3从请访问: 【docker】基于docker的redis集群主从收缩配置(详细)_维运的博客-CSDN博客