如何在先前死亡的redis-master再次联机时禁用sentinel auto-slaveof

时间:2015-04-21 07:15:57

标签: caching redis high-availability redis-sentinel

当有网络分区时,我对redis sentinel有疑问

我在server01上启动了redis服务器作为主服务器,在server02上启动了服务器作为slave,在另一台服务器上有一个redis sentinel,我设置了一个脚本,使客户端在故障转移时指向新的主服务器。

然后在server01上发生隔离主服务器的分区,因此Sentinel在server02上启动故障转移,server02的从服务器成为新的主服务器。现在所有的客户都在使用新的主人,这没关系。

然而,当分区恢复时,sentinel会将slaveof发送给旧主服务器。然后旧主人将删除所有数据并与新主人同步,即使新主人和旧主人之间几乎没有什么区别。当有多个主从组时,sync命令将占用我生产环境中的所有带宽。

那么如何禁用auto slaveof?有更好的主意吗?

1 个答案:

答案 0 :(得分:0)

你想一起删除旧主人吗?如果是这样,那么在它恢复之前发出sentinel reset <podname>并且它(旧主)将从Sentinel中删除。当然,那么你将没有新主人的奴隶。

Redis目前的工作方式,老主人总是要与新主人完全重新同步,成为它的奴隶。因此,只要您想要复制,Redis本身的复制会发生变化,您就必须接受同步方面。

那就是说,我不确定你的意思是“当有一个以上的主从组......”时。你能详细说明一下吗?