反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库。
首先准备好一主两仆的环境。 6379端口为主机,6380端口、6381端口为从机。
1.编辑sentinel.conf文件
sentinel monitor mymaster 127.0.0.1 6379 1
其中mymaster为监控对象起的服务器名称, 1 为至少有多少个哨兵同意迁移的数量。
2.在文件所在目录下启动哨兵监控
redis-sentinel sentinel.conf
说明监控的是6379端口的redis服务,6379端口下有6380端口,6381端口两个从机
当主机挂掉
隔一会,哨兵就检测到,自动进行主从机的切换,并使6381变为主机。
故障恢复的流程:
1、优先级在redis.conf中默认:slave-priority 100,值越小优先级越高
redis 6.0中变为 replica-priority
2、偏移量是指获得原主机数据最全的
3、每个redis实例启动后都会随机生成一个40位的runid
复制延时
由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。