redis---哨兵模式Sentinel

上次搭建了一主两从的Redis集群,来实现了一定程度上的高可用。相比一个单节点的Redis来说已经有了很大的提升。

但是这个集群还是有一些问题的,主节点宕机了,我们还是需要手动去把另一台从节点提升为主节点,这样就不能实现真正的高可用。那么有什么办法可以实现自动的故障转移呢?

就说到redis哨兵模式了。哨兵会以一个独立的进程运行在redis集群中,用来监控redis集群中的各个节点。它主要用来执行下面的几个功能,第一个是监控,通过不断地发送命令来检查Redis节点是否正常。第二个是通知,如果发现某个节点出了问题,那么哨兵就会通过发布订阅模式来通知其他节点。第三个就是自动故障转移。当主节点不能正常工作的时候,哨兵就会开始一个自动故障转移的操作。它会将一个从节点升级为新的主节点,然后再将其他从节点指向新的主节点。

首先需要在Redis集群中,添加一个哨兵节点。可以使用redis -sentinel命令来启动哨兵节点。这里需要添加一个配置文件,文件名为sentinel.conf。用vi

在里面添加如下配置。

monitor后面加上一个名字,这里的master就是要监控的主节点的名称可以自定义,后面加上主节点的IP地址和端口号,最后一个参数1,表示只需要一个哨兵节点同意

启动哨兵节点

可以看到一个运行在26379端口

然后我们来找到6379这个服务端ctrl+c把它停下来,模拟一下主节点宕机。

哨兵它监控到了6379,然后执行了自动的故障转移,那现在新的的主节点是6381

可以看到6381现在已经变成了master

从节点6380,它的主节点对应的变成了6381

最后需要提醒一下,哨兵本身也是一个进程,它自己也会有单节点故障的问题。所以一般在实际的生产环境,会使用三个哨兵节点来保证高可用。这三个哨兵节点会通过选举的方式来选出一个领导者,然后由领导者来监控其他节点。如果领导者挂了,那么其他哨兵节点会重新选举出一个领导者。这样就可以保证哨兵节点的高可用。

相关推荐
数据库小学妹6 小时前
国产数据库怎么选?兼容、迁移、核心案例与融合架构四道关
数据库·架构·国产数据库·数据库迁移·融合数据库
IvorySQL6 小时前
PostgreSQL 日报| PgBouncer 修复三个 CVE 漏洞(10 月 15 日)
数据库·postgresql·区块链
饺子大魔王的男人6 小时前
后台表格、查询、流程总在重复写?我用ToolJet把PostgreSQL直接做成可远程访问的业务系统
数据库·postgresql
Gauss松鼠会7 小时前
高斯数据库(openGauss)的物理存储结构
运维·服务器·数据库·sql·opengauss·经验总结
Knight_AL7 小时前
本地服务连接 SaaS 测试环境实践:Docker 部署 Redis 与 RocketMQ 完成接口联调
redis·docker·rocketmq
杨云龙UP7 小时前
PostgreSQL 18.4 数据库整库迁移实战:pg_dump 备份与 pg_restore 恢复完整操作手册
运维·服务器·数据库·postgresql·pg_dump·pg_restore
AOI小白新手上路8 小时前
autodl常用的tar 打包下载(数据集)命令手册:逐段拆解与套用模板
java·大数据·数据库
凯歌的博客8 小时前
DuckDB 是一款进程内的分析型数据库
数据库·ai编程
夕除8 小时前
redis--服务器优化
redis