Redis哨兵机制

slave节点宕机恢复后可以找master节点同步数据,那master节点宕机了怎么办呢?

1. 哨兵的作用和原理

image
因为当master节点发生故障后,哨兵机制会选出一个slave作为新的master。这个时候RedisClient所连接的master和slave地址和端口发生了变化,如果RedisClient中的master和slave地址是写死的。发生master切换后,就无法正常连接或提供服务了。

因此,RedisClient会从Sentinel集群中获取redis集群中的master和slave地址。当master故障切换后,Sentinel会将变化后新的master和slave地址推给RedisClient,以此保障对客户端持续提供稳定的服务(master进行写操作,slave进行读操作)

服务状态监控

image

选举新master

image

故障转移

image

总结

image

2. 搭建哨兵集群

每个sentinel的配置文件:
image

3. RedisTemplate的哨兵模式

image
image
然后通过调用接口,进行redis的读和写操作:

  • 通过查看打印日志,可以发现,当进行读操作的时候,连接的是redis集群中的slave节点,进行写操作时,连接的是master节点

当redis集群中master节点宕机了,sentinel会从在线的slave中选出新的master。当之前宕机的master节点再次上线,会成为新master的slave节点。而且整个过程中,redis集群中节点角色的变化会被sentinel监控到,sentinel会动态获取最新的主从节点信息。

posted @ 2022-07-07 22:38  paopaolx  阅读(135)  评论(0编辑  收藏  举报