2022-03-25 redis哨兵+主从的组建及failover流程

本文详细记录了2022年3月25日搭建Redis哨兵+主从结构的过程,并探讨了哨兵如何控制故障转移(failover),包括时序图展示关键步骤。通过理解哨兵源码,深入理解整个系统的运作机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

摘要:

哨兵+主从的组建:

哨兵控制failover:

哨兵源码:


摘要:

记录redis哨兵+主从的组建及failover流程, 由于是动态结构, 所以主要是时序图.

哨兵+主从的组建:

哨兵控制failover:

哨兵源码:

/* Redis Sentinel implementation
 *
 * Copyright (c) 2009-2012, Salvatore Sanfili
### Redis 主从复制与哨兵模式配置教程 #### 一、Redis 安装 为了确保后续操作顺利,在开始之前需完成 Redis 的安装。 1. **上传、解压、重命名** 将下载好的 Redis 文件包上传至服务器并解压缩,随后根据需求对其进行重命名以便于管理[^1]。 2. **安装 GCC 环境** 编译 Redis 源码前要确认已安装好 GCC 开发工具链,这一步对于编译过程至关重要。 3. **编译源码** 使用 `make` 命令来编译 Redis 源代码,这是构建软件的标准流程之一。 4. **进行安装** 执行 `make install` 来正式安装 Redis 到指定路径下,使服务能够正常运行。 5. **修改配置文件 redis.conf** 对默认配置做出适当调整以适应实际应用场景的需求,比如设置绑定地址、端口号等参数。 ```bash # 修改后的部分配置项示例 bind 0.0.0.0 port 6379 daemonize yes logfile "/var/log/redis_6379.log" dir /data/redis/ ``` #### 二、Redis 主从复制搭建 主从架构可以提高系统的读取性能和数据冗余度。具体做法如下: 1. 创建用于存放不同实例配置及相关日志的独立目录结构,便于管理和维护各个节点之间的关系。 2. 在每台机器上分别启动多个 Redis 实例作为 Master 和 Slave,并通过编辑各自的 `redis.conf` 文件指明角色身份及其关联信息(如 masterauth 密码认证)。 3. 设置 Slave 节点指向对应的 Master 地址和服务端口,从而建立连接实现同步更新操作。 ```conf slaveof <master-ip> <master-port> ``` 当客户端向 Master 发起写请求时,Master 会记录这些变更并通过命令传播机制告知所有与其相连的 Slaves 进行相同的操作处理,以此保持两者间的数据一致性[^3]。 #### 三、配置 Redis哨兵模式 哨兵系统负责监控整个集群状态变化情况,自动检测故障发生位置并执行必要的恢复措施,保障业务连续性和稳定性。 1. 同样先准备好专门存储 Sentinel 配置文档和其他资源材料的空间环境。 2. 接下来依据官方模板编写或手动输入相应选项到 `sentinel.conf` 中定义监视目标对象以及通知方式等内容。 ```conf # sentinel.conf 示例片段 sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds mymaster 30000 sentinel failover-timeout mymaster 180000 ``` 上述设定意味着至少要有两个投票同意才能判定某主机不可达进而触发切换动作;而超时时间则决定了等待响应的最大时限长度[^2]。 3. 最后依次开启各处部署完毕的服务进程即可让整套方案投入实战测试阶段,验证其有效性及可靠性水平如何。 --- 一旦某个 Master 出现异常停止工作的情形之下,Sentinel 组件便会迅速介入评估当前形势并向其他存活成员发起询问收集意见达成共识之后挑选出新的领导者继续承担对外提供访问接口的任务职能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟世者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值