> 文章列表 > redis主从复制之薪火相传与反客为主

redis主从复制之薪火相传与反客为主

redis主从复制之薪火相传与反客为主

1、薪火相传是什么

        上一个slave(redis从服务器)可以是以下slave的master(主服务器),slave同样可以接收其他slave的连接和同步请求,那么该slave作为链条中下一个的master

优点:

  • slave可以从其他的slave中同步数据,当该slave宕机恢复后,不需要再从master进行同步,直接从上一级的slave进行同步,从而有效减轻master的写压力(不需要给宕机的slave同步了,只需要专心写数据),去中心化降低风险

缺点:

  • 当上一级的slave宕机后,该宕机slave下的所有slave都无法恢复数据

2、薪火相传案例

我在一台Linux上,启动3个redis服务器,模拟一主二从,搭建步骤参考:redis主从复制

3台redis如下:

 现在修改端口为6381的redis服务,他的上级改为端口6380的从服务器:

slaveof 127.0.0.1 6380

如下:

查看当前修改的redis的主从复制信息

info replication

 如下:

 再看端口号为6380的从服务器的主从复制信息:

最后看端口为6379的master服务器:

案例结束

3、反客为主

当一个master宕机后,后面的slave可以立刻升为master,其后面的slave不用做任何修改。

在任意从服务器中,使用命令:

slaveof no one

案例:

接第2点中的案例:

3.1、把端口号为6379的master服务器宕机

shutdown

3.2 、查看端口号为6380的从服务器的主从复制信息

3.3、把端口号为6380的从服务器升级为主服务器

 slaveof no one

如下:

 反客为主总结:

  1. 该方式(slaveof no one)为反客为主的手动模式,需要我们在得知master宕机后,手动执行该命令。
  2. 可以通过运维人员或运维技术,在master宕机后,可以手动执行命令或在运维监控中执行,但是这种方式大大的提高了运维成本
  3. 因此,我们追求与一种反客为主的自动化方式,该种方式就是"哨兵模式"