我们知道主从复制是这样搭建的
主机可以读,可以写
从机只能读,不能写
想一想,那么我们是不是也可以这样呢?
多个 redis-server 首尾相连
那么咱们部署的时候就是 6379 – 6380 – 6381
此时,若主机 6379 宕机掉,6380 会不会变成主机呢?
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=6380,state=online,offset=0,lag=1
master_failover_state:no-failover
master_replid:f1e3db9e5e438f5d98e4cad23f684b12d790ae56
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:0
我们可以看到 6379 有一个从机,6380 自身也是作为从机(虽然 6380 是 6381 的主机)
此时将 6379 宕机掉,发现 6380 仍然是 slave
127.0.0.1:6379> shudown
not connected>
我们人为的将 reids 6380 的服务器修改为主机,看看 6379 redis-server 起来之后,是否可以把 master 抢回去
使用 slaveof no one
可以将自己设置成 master
启动 6379 redis-server
redis-server /usr/local/redis/redis-6.2.5/6379.conf
发现 6380 仍然是主机,6379 成为了光杆司令
实际项目中,我们肯定不会采取上面和上一次文章说到的部署方式,他们抵御风险的能力太低