Akemi

Redis集群主从关系优化

2024/09/24

缺陷主从

如果redis1 2 3中任意一台服务器down,都会直接导致redis数据丢失

此时的错误容忍性是:每台服务器最多故障一个redis实例

正常主从

此时的错误容忍性:允许任意一台服务器宕机的同时,任意一个redis实例故障

主从关系调整

将当前Redis集群中的主从关系从同主机上的8001和8002端口间的自循环调整为交错的主从关系

CLUSTER REPLICATE NOONE 使当前redis节点断开主从关系

CLUSTER REPLICATE <new-master-node-id> 使当前redis节点从从节点提升为主节点

当前状态

1
2
3
4
5
6
7
8
cluster nodes
c37cd7a35beb35c7cf648d54c88f58514fd8dbdd 192.168.10.116:8001@18001 master - 0 1727107544181 9 connected 0-5460
68d676f1a14073941cfeb46e88f281bc85f61c1d 192.168.10.117:8001@18001 master - 0 1727107544081 11 connected 6826-12287
68c3eb97a6a9d531f83690af8f780f4ed2af73c4 192.168.10.118:8001@18001 myself,master - 0 1727107542000 10 connected 5461-6825 12288-16383

8324825e7ecf81cf4ae4bf2604b022b8a8f2e068 192.168.10.116:8002@18002 slave 68c3eb97a6a9d531f83690af8f780f4ed2af73c4 0 1727107543580 10 connected
8091088d4c52b74d29185729ff820f1e821bdb30 192.168.10.117:8002@18002 slave c37cd7a35beb35c7cf648d54c88f58514fd8dbdd 0 1727107543679 9 connected
c35ba3d5788e974ad6830f5dbdeaa5fa0303bd2e 192.168.10.118:8002@18002 slave 68d676f1a14073941cfeb46e88f281bc85f61c1d 0 1727107543178 11 connected

进行调整

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 进入116 117 118的8002端口
# 分别指定117 118 116的master主节点进行复制
redis-cli -h 192.168.10.116 -p 8002 CLUSTER REPLICATE 68c3eb97a6a9d531f83690af8f780f4ed2af73c4
redis-cli -h 192.168.10.117 -p 8002 CLUSTER REPLICATE c37cd7a35beb35c7cf648d54c88f58514fd8dbdd
redis-cli -h 192.168.10.118 -p 8002 CLUSTER REPLICATE 68d676f1a14073941cfeb46e88f281bc85f61c1d

[root@redis1 redis-cluster]# redis-cli -p 8001 cluster nodes | grep slave
8091088d4c52b74d29185729ff820f1e821bdb30 192.168.10.117:8002@18002 slave c37cd7a35beb35c7cf648d54c88f58514fd8dbdd 0 1727110059925 9 connected
8324825e7ecf81cf4ae4bf2604b022b8a8f2e068 192.168.10.116:8002@18002 slave 68c3eb97a6a9d531f83690af8f780f4ed2af73c4 0 1727110059523 10 connected
c35ba3d5788e974ad6830f5dbdeaa5fa0303bd2e 192.168.10.118:8002@18002 slave 68d676f1a14073941cfeb46e88f281bc85f61c1d 0 1727110059000 11 connected
[root@redis1 redis-cluster]# redis-cli -p 8001 cluster nodes | grep master
c37cd7a35beb35c7cf648d54c88f58514fd8dbdd 192.168.10.116:8001@18001 myself,master - 0 1727110065000 9 connected 0-5460
68c3eb97a6a9d531f83690af8f780f4ed2af73c4 192.168.10.118:8001@18001 master - 0 1727110065000 10 connected 5461-6825 12288-16383
68d676f1a14073941cfeb46e88f281bc85f61c1d 192.168.10.117:8001@18001 master - 0 1727110066000 11 connected 6826-12287
已经调整完成
CATALOG
  1. 1. 缺陷主从
  2. 2. 正常主从
  3. 3. 主从关系调整