Plantre Plantre
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

plantre

一个后端开发者
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 计算机组成原理

  • 操作系统

  • 计算机网络

  • 设计模式

  • Java

  • Spring

  • SpringCloud

  • MySQL

  • Redis

    • redis的槽

    • 集群搭建

      • redis3主3从搭建方式
      • redis3 主 3 从和哨兵模式什么区别
      • 修改集群
      • Redis Cluster 节点管理
        • 1. 添加新节点
          • (1)自动化的部分
          • (2)需要手动操作的部分
        • 2. 删除节点
          • (1)自动化的部分
          • (2)需要手动操作的部分
        • 3. 如何减少手动操作?
          • (1)使用 `--cluster-replicas 1` 自动分配主从
          • (2)使用 `--cluster-rebalance` 自动均衡槽
          • (3)自动化运维工具
        • 4. 结论
      • 常用集群维护命令​
      • 一个项目有必要搭建多个redis集群吗,集群和集群之间什么关系
  • 分布式

  • Zookeeper

  • Dubbo

  • Kafka

  • 数据结构

  • 算法

  • OJ

  • 从道家哲学看计算机?
  • 后端
  • Redis
  • 集群搭建
plantre
2025-06-19
目录

Redis Cluster 节点管理

# Redis Cluster 节点管理:是否需要手动调整?

Redis Cluster 支持自动的节点发现和槽分配,但在 添加/删除节点 时,部分操作仍需手动干预,具体取决于你的需求:


# 1. 添加新节点

# (1)自动化的部分

  • 节点发现:新节点加入集群后,会自动同步集群拓扑信息。
  • 从节点复制:如果新节点是 从节点(slave),可以自动复制主节点数据。

# (2)需要手动操作的部分

操作 是否手动 说明
添加节点到集群 ✅ redis-cli --cluster add-node
分配槽(如果是主节点) ✅ redis-cli --cluster reshard
设置从节点复制关系 ⚠️ 可以手动或自动(--cluster-slave)
调整槽均衡 ✅ redis-cli --cluster rebalance

示例:添加新主节点

# 1. 添加节点(不自动分配槽)
redis-cli --cluster add-node 10.143.143.104:7006 10.143.143.101:7000

# 2. 手动分配槽给它
redis-cli --cluster reshard 10.143.143.101:7000
# 交互式输入要迁移的槽数量、源节点、目标节点

# 3. 可选:让集群自动均衡槽
redis-cli --cluster rebalance 10.143.143.101:7000
1
2
3
4
5
6
7
8
9

示例:添加新从节点(自动复制)

# 自动分配一个主节点给它
redis-cli --cluster add-node 10.143.143.104:7006 10.143.143.101:7000 --cluster-slave

# 或者手动指定主节点
redis-cli --cluster add-node 10.143.143.104:7006 10.143.143.101:7000 --cluster-slave --cluster-master-id <主节点ID>
1
2
3
4
5

# 2. 删除节点

# (1)自动化的部分

  • 从节点删除:直接移除,不影响数据。
  • 主节点删除(无槽时):可以直接删除。

# (2)需要手动操作的部分

操作 是否手动 说明
迁移槽(如果主节点有槽) ✅ redis-cli --cluster reshard
删除节点 ✅ redis-cli --cluster del-node

示例:删除主节点(有槽)

# 1. 先迁移它的槽到其他主节点
redis-cli --cluster reshard 10.143.143.101:7000
# 选择目标节点,输入要迁移的槽数量

# 2. 确认槽已迁移后,删除节点
redis-cli --cluster del-node 10.143.143.101:7000 <节点ID>
1
2
3
4
5
6

示例:删除从节点(无槽)

# 直接删除
redis-cli --cluster del-node 10.143.143.101:7000 <节点ID>
1
2

# 3. 如何减少手动操作?

# (1)使用 --cluster-replicas 1 自动分配主从

在 初始化集群 时,可以自动分配主从关系:

redis-cli --cluster create \
  10.143.143.101:7000 10.143.143.101:7001 \
  10.143.143.102:7002 10.143.143.102:7003 \
  10.143.143.103:7004 10.143.143.103:7005 \
  --cluster-replicas 1
1
2
3
4
5

这会自动:

  • 选 3 个主节点(7000、7002、7004)。
  • 分配 3 个从节点(7001、7003、7005)分别复制主节点。

# (2)使用 --cluster-rebalance 自动均衡槽

redis-cli --cluster rebalance 10.143.143.101:7000 --cluster-use-empty-masters
1

自动调整槽分布,使各主节点负载均衡。

# (3)自动化运维工具

  • Redis Cluster Proxy(如 twemproxy、predixy)可以简化客户端访问。
  • Kubernetes Operator(如 Redis Enterprise、Redis Cluster Operator)可以自动管理节点扩缩容。

# 4. 结论

操作 是否必须手动
添加主节点 ✅ 需手动分配槽
添加从节点 ⚠️ 可自动或手动
删除主节点(有槽) ✅ 需先迁移槽
删除从节点 ❌ 可直接删除
槽均衡调整 ⚠️ 可手动或自动

最佳实践:

  1. 初始创建集群时 用 --cluster-replicas 1 自动分配主从。
  2. 扩缩容时:
    • 主节点:手动分配槽。
    • 从节点:可自动分配。
  3. 定期检查 用 redis-cli --cluster check 确保集群健康。

如果你的集群需要频繁扩缩容,建议结合 自动化运维工具(如 Ansible、K8s Operator)减少手动操作。

编辑 (opens new window)
上次更新: 2025/06/24, 00:41:57
修改集群
常用集群维护命令​

← 修改集群 常用集群维护命令​→

最近更新
01
集成loki
07-04
02
TCP的ESTABLISHED是什么意思
06-24
03
安装1panel
06-24
更多文章>
Theme by Vdoing | Copyright © 2025-2025 plantre | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式