Redis学习(九)redis主从架构宕机问题解决

1    主机宕机

1、  设置端口6379是主机,端口6380是从机,全部都正常启动

2、  验证在6379写入数据,在6380也能得到数据


3、  现在将6379主机停掉,模拟主机宕机

4、  由于主机宕机了,现在就要将6380从机设置为主机,使用slaveof no one命令,此时原来的从机变为

       主机也用了写的权限

5、  要是原来6379经过修复后,能够正常工作,先将6380主机数据进行保存持久化,将rdb文件,覆盖原主机6379的rdb文件,进行数据的统一。


6、  启动原来的主机6379


7、  将6380再次设置为从机

8、  先验证主机和从机数据是否一致

主机:

从机:

9、  在主机设置值,看能否同步到从机。

主机设置数据

从机得到数据


10、 测试从机是否还有写权限


作为从机之后,不再具有写权限了。

1.2    从机宕机

这个相对而言比较简单,在Redis中从库重新启动后会自动加入到主从架构中,自动完成同步数据;

1.3    总结

如果在主从复制架构中出现宕机的情况,需要分情况看:

1、  从Redis宕机

a)        这个相对而言比较简单,在Redis中从库重新启动后会自动加入到主从架构中,自动完成同步数据;

b)        问题? 如果从库在断开期间,主库的变化不大,从库再次启动后,主库依然会将所有的数据做RDB操作吗?还是增量更新?(从库有做持久化的前提下)

             i.   不会的,因为在Redis2.8版本后就实现了,主从断线后恢复的情况下实现增量复制。

2、  主Redis宕机

a)        这个相对而言就会复杂一些,需要以下2步才能完成

                      i.   第一步,在从数据库中执行SLAVEOFNO ONE命令,断开主从关系并且提升为主库继续服务;

                      ii.   第二步,将主库重新启动后,执行SLAVEOF命令,将其设置为其他库的从库,这时数据就能更新回来;

b)        这个手动完成恢复的过程其实是比较麻烦的并且容易出错,有没有好办法解决呢?当前有的,Redis提供的哨兵(sentinel)的功能。

猜你喜欢

转载自blog.csdn.net/zhoujian_liu/article/details/80866415
今日推荐