Redis哨兵模式下,java客户端连接的是哨兵还是Redis的实例?Redis实例Master挂了怎么办?哨兵实例挂了怎么办?

Redis哨兵模式下,java客户端连接的是哨兵还是Redis的实例?Redis实例Master挂了怎么办?哨兵实例挂了怎么办?Redis客户端每次都从哨兵拿master的信息吗?

 

问题,一个一个解决。

java客户端连接的是哨兵还是Redis的实例?

连接的是哨兵

 

Redis实例Master挂了怎么办?

Master挂了,sentinel会进行提议,选举出一个sentinel,让选举出来的sentinel去选举新的master。

选举sentinel代表是根据谁先提议,得票数的规则选举。

选举master是根据在线的、响应快的、偏移量大的,runId来决定。

 

 

哨兵实例挂了怎么办?

 此刻选举不出来master,但是redis客户端有缓存,还可以继续用缓存中的master。

 

Redis客户端每次都从哨兵拿master的信息吗?

sentinel哨兵是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点。

哨兵架构下client端第一次从哨兵找出redis的主节点,后续就直接访问redis的主节点,不会每次都通过 sentinel代理访问redis的主节点,当redis的主节点发生变化,哨兵会第一时间感知到,并且将新的redis 主节点通知给client端(这里面redis的client端一般都实现了订阅功能,订阅sentinel发布的节点变动消息)

 

posted on 2021-04-12 21:22  坚守梦想  阅读(1504)  评论(0编辑  收藏  举报