redis 集群节点切换角色

redis 集群节点切换角色

根据你提供的Redis集群节点信息和目标需求,以下是将10.1.*​节点提升为主节点的操作步骤和注意事项:


一、当前主节点与从节点关系分析

链接节点查看现有集群状态

xml 复制代码
10.1.230.40:6379> CLUSTER NODES
0b51383741a0ff67fc8b15a0f2166bb5a12bf822 10.8.230.42:6379@16379 slave e8d28f4e215718d59df98247ae1e6ebe2794ed02 0 1744008314000 13 connected
954b17e97b83fbca22f6cab3c73da67a6be34fa6 10.8.230.41:6379@16379 slave 2b4ab6c9ec9a73a7ca6cbf637c9fa25cd80fbd63 0 1744008314000 16 connected
2242e52dcaf94cef1db93d94e4d7d9ee57c4d566 10.8.230.44:6379@16379 master - 0 1744008313843 15 connected 5461-10922
a43c31620863882c9d54793391236c0b27bc2e2e 10.1.230.44:6379@16379 slave 2b4ab6c9ec9a73a7ca6cbf637c9fa25cd80fbd63 0 1744008314044 16 connected
fd0fc5c568ef00adaf700e47a5658c01cdb6a0c1 10.1.230.43:6379@16379 slave e8d28f4e215718d59df98247ae1e6ebe2794ed02 0 1744008314145 13 connected
82d2c20c58a2fbce12a7eb2dc7ea112ccd39aff9 10.1.230.42:6379@16379 slave e8d28f4e215718d59df98247ae1e6ebe2794ed02 0 1744008314044 13 connected
bc4b6e3063b2c1c3b0e8c8efc8c32928ad9f8b13 10.1.230.41:6379@16379 slave 2242e52dcaf94cef1db93d94e4d7d9ee57c4d566 0 1744008314000 15 connected
e8d28f4e215718d59df98247ae1e6ebe2794ed02 10.8.230.45:6379@16379 master - 0 1744008314146 13 connected 10923-16383
e59dd0efc212a27f42a2188bd360e9031ae83a1d 10.8.230.43:6379@16379 slave 2242e52dcaf94cef1db93d94e4d7d9ee57c4d566 0 1744008314000 15 connected
d9768a72ad28bb198732f0371c4a3e2971dacdc7 10.1.230.45:6379@16379 slave 2b4ab6c9ec9a73a7ca6cbf637c9fa25cd80fbd63 0 1744008314246 16 connected
2b4ab6c9ec9a73a7ca6cbf637c9fa25cd80fbd63 10.8.230.40:6379@16379 master - 0 1744008314146 16 connected 0-5460
4ff65e21dadd2b1d9a641d4619f5a2b621d7a8a1 10.1.230.40:6379@16379 myself,slave 2b4ab6c9ec9a73a7ca6cbf637c9fa25cd80fbd63 0 1744008313000 16 connected

CLUSTER NODES​输出可见:

  • 唯一标识(ID)
  • 网络地址(IP:Port)
  • 角色(主节点、从节点)
  • 状态(连接状态、故障标志)
  • 槽位分配(哈希槽范围
  1. 当前主节点(共3个):

    • 10.8.230.40:6379(ID: 2b4ab6c9),负责槽位0-5460
    • 10.8.230.44:6379(ID: 2242e52d),负责槽位5461-10922
    • 10.8.230.45:6379(ID: e8d28f4e),负责槽位10923-16383
  2. 目标从节点(需提升为新的主节点):

    • 10.1.230.40:6379(ID: 4ff65e21) → 当前从属于10.8.230.40
    • 10.1.230.45:6379(ID: d9768a72) → 当前从属于10.8.230.40
    • 10.1.230.41:6379(ID: bc4b6e30) → 当前从属于10.8.230.44
    • 10.1.230.42:6379(ID: 82d2c20c) → 当前从属于10.8.230.45
    • 10.1.230.44:6379(ID: a43c3162) → 当前从属于10.8.230.40
  3. 分析得出我们需要将

    • 10.1.230.41:6379 提升为主节点
    • 10.1.230.42:6379 提升为主节点
    • 10.1.230.44:6379 提升为主节点

二、操作步骤

1. 触发故障转移(Failover)

在Redis集群模式下,需使用CLUSTER FAILOVER​命令强制从节点接管主节点角色。需按主节点逐个操作

  • 示例:替换主节点10.8.230.40(槽位0-5460)

    bash 复制代码
    # 连接到目标从节点(如10.1.230.40)
    redis-cli -h 10.1.230.41 -p 6379
    
    # 执行强制故障转移
    CLUSTER FAILOVER FORCE
    • 作用:强制该从节点接管其主节点的槽位。
    • 验证 :再次执行CLUSTER NODES,确认该节点角色变为master,且槽位0-5460已转移。
  • 重复上述步骤

    • 替换10.8.230.44(槽位5461-10922):选择10.1.230.41执行故障转移。
    • 替换10.8.230.45(槽位10923-16383):选择10.1.230.4210.1.230.44执行故障转移。
2. 调整原主节点角色(按需调整非必做 重新调整整体结构)

若原主节点仍在线,需将其降级为从节点并指向新主:

bash 复制代码
# 连接到原主节点(如10.8.230.40)
redis-cli -h 10.8.230.40 -p 6379

# 重置节点角色
CLUSTER RESET HARD

# 重新加入集群作为从节点
CLUSTER MEET 10.1.230.40 6379
CLUSTER REPLICATE <新主节点ID>
3. 验证集群状态
  • 检查所有主节点是否均为10.1.*​节点:

    bash 复制代码
    CLUSTER NODES | grep master
  • 确认槽位分配完整且无重复:

    bash 复制代码
    CLUSTER SLOTS

三、注意事项

  1. 数据一致性

    • 确保故障转移前从节点数据已完全同步(通过INFO replication检查master_sync_in_progress是否为0)。
    • 若原主节点有未同步的写操作,强制故障转移可能导致数据丢失。
  2. 客户端配置更新

    • 更新客户端连接配置,指向新的主节点IP。
  3. 高可用性建议

    • 若需自动化切换,建议部署Redis Sentinel监控集群。
    • 每个主节点至少保留一个从节点以维持高可用性。

四、补充说明

  • 强制故障转移适用场景 :当原主节点不可用或需主动切换时使用CLUSTER FAILOVER FORCE
  • 动态配置:Redis集群支持动态调整节点角色,无需重启服务。

相关推荐
二宝哥13 小时前
CentOS 7.9 系统下 Redis 5.0.4 单机安装与源码编译安装指南
redis·centos
ShiXZ21319 小时前
Redis docker-compose 部署指南
redis·docker·eureka
青山木21 小时前
Redis 缓存一致性全解:从 Cache Aside 到延迟双删、Canal+MQ 的进阶之路
java·数据库·redis·后端·缓存
YDS8291 天前
大营销平台 —— 活动SKU库存扣减业务及其一致性处理
java·spring boot·redis·rabbitmq·ddd
爬也要爬着前进2 天前
redis主从搭建
数据库·redis·缓存
用户095367515832 天前
在系统的学习 redis 前的疑惑
redis·go
吴声子夜歌2 天前
Redis 3.x——集群故障转移
java·数据库·redis·集群
明豆2 天前
Redis 分布式缓存生产实战
redis·分布式·缓存
海兰2 天前
【高速缓存】RedisVL 指南:从向量搜索到 AI 应用落地
人工智能·redis
weixin_727535622 天前
双Token认证体系深度拆解:Spring Security + JWT + Redis
redis·spring·wpf