哨兵模式下排查问题

首先连接上哨兵节点

redis-cli -h <ip> -p 26379 -a <passward>

再输入

sentinel slaves mymaster

可以看到如下信息(代表当前哨兵监听的所有从节点的地址

127.0.0.1:26379> sentinel slaves mymaster
1)  1) "name"
    2) "192.168.187.237:6380"  //这是第一个从节点的名称,包含 IP 地址和端口号。
    3) "ip"
    4) "192.168.187.237"  //这是从节点的 IP 地址
    5) "port"
    6) "6380"        //从节点端口号
    7) "runid"
    8) "f4eb5e9a67f0fbbdfbce1f3" //这是从节点的运行 ID,用于唯一标识这个Redis 实例。
    9) "flags"
   10) "slave"  //表示该节点是一个从节点。
   11) "pending-commands"
   12) "0"      //当前待处理的命令数。
   13) "last-ping-sent"
   14) "0"      //最后一次发送 ping 命令的时间。
   15) "last-ok-ping-reply"
   16) "243"    //最后一次收到的有效 ping 回复的时间。
   17) "last-ping-reply"
   18) "243"    //最后一次收到 ping 回复的时间。
   19) "down-after-milliseconds"
   20) "30000"  //该从节点在没有与主节点通讯的情况下,会被认为“挂掉”前的时间(单位毫秒)。
   21) "info-refresh"
   22) "5290"
   23) "role-reported"
   24) "slave"
   25) "role-reported-time"
   26) "467346"
   27) "master-link-down-time"
   28) "0"
   29) "master-link-status"
   30) "ok"
   31) "master-host"
   32) "192.168.187.237"
   33) "master-port"
   34) "6379"
   35) "slave-priority"
   36) "100"
   37) "slave-repl-offset"
   38) "33435"
2)  1) "name"
    2) "192.168.1.83:6380"
    3) "ip"
    4) "192.168.1.83"
    5) "port"
    6) "6380"
    7) "runid"
    8) ""
    9) "flags"
   10) "s_down,slave"
   11) "pending-commands"
   12) "100"
   13) "last-ping-sent"
   14) "468362"
   15) "last-ok-ping-reply"
   16) "468362"
   17) "last-ping-reply"
   18) "468362"
   19) "s-down-time"
   20) "438269"
   21) "down-after-milliseconds"
   22) "30000"
   23) "info-refresh"
   24) "1753145071600"
   25) "role-reported"
   26) "slave"
   27) "role-reported-time"
   28) "468362"
   29) "master-link-down-time"
   30) "0"
   31) "master-link-status"
   32) "err"
   33) "master-host"
   34) "?"
   35) "master-port"
   36) "0"
   37) "slave-priority"
   38) "100"
   39) "slave-repl-offset"
   40) "0"

<think>好的,我现在需要帮助用户了解Redis哨兵模式的配置、使用、搭建和主从切换。首先,我得回忆一下Redis哨兵模式的基本概念。根据引用内容,哨兵模式Redis的高可用解决方案,用于监控主从服务器,执行故障转移,并通知客户端新的主节点地址。 用户的问题涉及配置、使用、搭建和主从切换,我需要分步骤解释这些部分。首先,配置方面,引用2提到了sentinel.conf的关键配置项,比如监控主节点、密码设置、宕机判定时间和故障转移超时。这些是配置哨兵时必须注意的要点。然后引用3给出了具体的配置步骤,比如修改redis.conf中的daemonize为yes,启动服务的命令等。需要将这些信息整合,给出一个清晰的配置流程。 接下来是搭建主从集群。用户可能需要先设置主从复制,再配置哨兵。引用3中的步骤包括复制配置文件、修改daemonize、启动服务,这部分需要详细说明。同时,主从切换的过程涉及到哨兵如何检测主节点故障,选举新主节点,更新配置并通知客户端,这部分需要结合引用1中的故障转移机制来解释。 另外,用户可能关心如何验证配置是否成功,比如使用SENTINEL masters命令检查主节点状态,如引用2中的示例命令。这部分可以作为验证步骤加入回答中,帮助用户确认他们的配置是否正确。 需要注意的是,用户提供的引用中有一些关于Docker的命令,但引用3是在CentOS7环境下搭建的步骤,可能需要区分不同环境下的操作,或者指出配置文件的通用性。不过用户的问题没有特别指定环境,所以可能需要保持通用,或者简要说明不同环境下的注意事项。 可能还需要提到哨兵节点的数量,通常建议至少三个哨兵以确保高可用性,避免脑裂问题。虽然引用中没有直接提到,但这是实际配置中的常见做法,应该包含在回答中。 最后,生成相关问题时,要围绕用户可能进一步想知道的内容,比如配置文件详解、故障转移过程、多哨兵节点配置、客户端如何感知主节点变化,以及常见问题排查等。这些问题可以帮助用户深入理解哨兵模式的不同方面。 总结一下,回答的结构应该是先介绍哨兵模式的作用,然后分步骤讲解配置、搭建主从集群、启动哨兵,接着说明主从切换的过程,最后给出验证方法和相关注意事项。确保每个步骤都引用对应的引用内容,并在末尾添加引用标识。同时,生成的四个相关问题要覆盖配置、故障转移、多节点配置和客户端处理,以帮助用户扩展知识。</think>### Redis哨兵模式配置与使用指南 #### 一、核心配置步骤 1. **主从集群搭建** - 修改`redis.conf`文件,设置主节点和从节点: - 主节点无需特殊配置,直接启动即可 - 从节点需添加配置:`replicaof <主节点IP> <端口>`[^3] - 所有节点设置`daemonize yes`以守护进程运行[^3] 2. **哨兵配置文件** 修改`sentinel.conf`关键参数: ```bash sentinel monitor mymaster 主节点IP 6379 2 # 监控名为mymaster的主节点,2表示需2个哨兵同意才触发故障转移 sentinel auth-pass mymaster 密码 # 若主节点有密码需配置 sentinel down-after-milliseconds mymaster 5000 # 5秒无响应判定节点宕机[^2] sentinel failover-timeout mymaster 60000 # 故障转移超时时间 ``` #### 二、服务启动与验证 ```bash # 启动Redis主从节点 ./redis-server redis.conf # 启动哨兵节点(需为每个哨兵单独配置) ./redis-sentinel sentinel.conf # 验证主节点监控状态 docker exec -it redis-sentinel-1 redis-cli -p 26379 SENTINEL masters[^2] ``` #### 三、主从切换过程 1. **故障检测**:哨兵集群通过心跳检测发现主节点不可用 2. **选举领导者哨兵**:通过Raft算法选出负责故障转移的哨兵 3. **故障转移**: - 选择数据最新的从节点晋升为新主节点 - 其他从节点改为复制新主节点 - 更新哨兵系统的拓扑信息[^1] #### 四、关键注意事项 - **推荐至少部署3个哨兵节点**,避免网络分区导致误判 - 客户端需实现`Sentinel`连接池,自动获取最新主节点地址 - 故障转移期间可能出现短暂服务不可用(通常<10秒)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

学会用脚编程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值