Redis 哨兵模式
反客为主的自动版能够后台监控主机是否故障,如果发生故障,就根据投票数从Slave中选取最高得票数的Slave,将其设置为Master。
基于一主二从配置哨兵:
cd /myRedis
echo 'sentinel monitor mymaster 127.0.0.1 6379 1' > sentinel.conf
- mymaster:监听的Master服务器别名(自定义)
- 127.0.0.1:监听的Master服务器IP地址
- 6379:监听的Master服务器端口号
- 1:至少有多少个哨兵同意迁移的数据
启动哨兵:
redis-sentinel /myRedis/sentinel.conf
当主机宕机,从机选举的机制:
哨兵会通知所有的从机进行投票选举,并根据slave-priority的优先级别选举出Master。此后,原主机重启后,会变为从机。
缺点:复制延时
由于所有的写操作都是在Master上操作,然后同步更新到Slave。所以从Master同步到Slave是有一定时间延迟的。当系统很繁忙时,延迟问题会更加严重,Slave数量的增加也会使得这个问题更加严重
- 优先级:在redis.conf中配置slave-priority(旧版),新版本为replica-priority,默认值为100,值越小优先级越高
- 偏移量:是指获得原主机数据最全的
- runid:每个redis实例启动后都会随机生成一个40位长度的值