哨兵实现的是高可用
说明一下sentinel选举主redis的过程,
首先选取最新的sentinel代表,每一个都维护一个值,谁都向对方发送我要当领导的信息(谁先发送到这里先记谁),如果收到对方回复的选举的id和自己的id一样,开始记票数,超过n/2+1即可。最后三张图片选举的是这个
然后再选举redis主节点
删除已下线或者断线状态的从
删除最近五秒没有回复的从
删除断开与之前master链接超过设置时长的从
按优先级排序,这样如果优先级一样,取复制偏移量最大的从
如果都满足取id最小的。
环境,启动了五个redis,三个sentinel,我这里就是停掉了6379端口,最后抉择出6380的过程。
配置文件说明 redis.conf sentinel.conf 更改文件名里边的端口即可
如下:
另外说一点sentinel.conf文件会随时改变的,因为如果出现redis节点异常,几个哨兵客观认为redismaster节点下线的话会重新选举产生新的master节点,重置之前master下属的所有从节点重新slaveof。
redis-server ./redis.conf &
redis-server ./redis6380.conf &
redis-server ./redis6381.conf &
redis-server ./redis6382.conf &
redis-server ./redis6383.conf &
redis-server ./redis6384.conf &
redis-sentinel ./sentinel.conf & 这个日志已经看不到了没有截图
redis-sentinel ./sentinel26380.conf &
redis-sentinel ./sentinel26381.conf &
来源:51CTO
作者:aklaus
链接:https://blog.51cto.com/aklaus/2484934