redis哨兵模式-Sentinel

RedisSentinel是一个用于监控Redis集群中Master状态的工具,提供高可用性解决方案。当主节点宕机时,Sentinel能自动将从节点提升为主节点,确保服务不间断。搭建Sentinel集群通常需要至少三个分布在不同位置的实例,以提高稳定性。在模拟故障场景中,Sentinel能成功执行主从切换,并在主节点恢复后将其设置为从节点。
摘要由CSDN通过智能技术生成
  • 我们之前知道主从模式可以提高redis的高可用性,那如果主节点凌晨 3 点redis主机突然宕机怎么办? 难道等着运维从睡梦中醒来,或者自己半夜起来手工进行从主切换,再通知所有的程序把地址统统改一遍重新上线么? (因为从数据库IP或者端口号跟主数据库是不一样的)毫无疑问,这样即麻烦又效率低。

  • 所以我们必须有一个高可用方案来抵抗节点出现故障的问题,当故障发生时可以自动进行从主切换,程序可以不用重启,我们也不需要半夜起来手动切换了。而这个方案就是Redis给我们提供的Redis Sentinel(哨兵)模式了

  • Sentinel(哨兵)是用于监控Redis集群中Master状态的工具,是Redis高可用解决方案,哨兵可以监视一个或者多个redis master服务,以及这些master服务的所有从服务。期间如果某个master服务宕机,它就会把这个master下的某个从服务升级为master来替代已宕机的master继续工作。

  • 主节点挂掉了,原先的主从复制也断开了,客户端和损坏的主节点也断开了。从节点被提升为新的主节点,其它从节点开始和新的主节点建立复制关系。客户端通过新的主节点继续进行交互。

  • Sentinel 会持续监控已经挂掉了主节点,待它恢复后,之前的主节点将会变成从节点跟新的主节点建立主从复制关系

哨兵环境搭建:

  • 因为Sentinel本身也需要多个哨兵共同确认主节点是否宕机,所以一个稳健的 Redis Sentinel集群建议至少使用三个 Sentinel 实例,并且保证讲这些实例放到不同的机器上,甚至不同的物理区域。

  • 这里我们在服务器创建一个sentinel目录,然后里面创建sentinel01、sentinel02、sentinel03三个目录,并目每个目录下都创建data和conf目录。

然后使用docker分别创建三个不同的sentinel容器环境,然后进入sentinel容器查看info.

我们停止掉redis-master来模拟宕机等故障信息,然后通过“info replication”查看角色信息是否自主完成了主从切换。

当我们再次启动redis-master的时候,发现它已经变为了slave的角色

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值