在没有哨兵的情况下,redis的主从复制,洳果主服务器挂掉之后,需要人工将从服务器晋升;
在redis的每个实例中都会保存自身的信息:
当主服务器挂掉或断开连接之后,副本服务器可能会提升成主服务器,然后会重新生成自己的两个复制id;
如下情况可以解释为什么需要两个复制id:
当主A,从1,从2组成主从复制;主A因网络问题断掉连接,从1升级為主1,同时加入了从3;
这时候主1需要担负起从2的复制责任,也要为从3复制数据;
[从1升级为主1时,会将自己原本的主复制id放到第二复制id,然后生成一个新複制id,作为主复制id]
这时,主1给从3复制数据时使用的是新的主复制id;主1给从2复制数据时使用的是原先的复制id(第二个复制id)
于此同时,主A在另一片网络中還是主服务器;如果从1晋升为主1后不改变主复制id,就会违背规则:redis中复制id相同,偏移量相同,它们就是同一个数据库.(偏移量一致是很可能发生的)