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 节点管理
        • 常用集群维护命令​
        • 一个项目有必要搭建多个redis集群吗,集群和集群之间什么关系
    • 分布式

    • Zookeeper

    • Dubbo

    • Kafka

    • 数据结构

    • 算法

    • OJ

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

    redis3 主 3 从和哨兵模式什么区别

    Redis的“3主3从集群模式”与“哨兵模式”是两种不同的高可用架构设计,核心差异在于数据分布方式和故障转移机制。以下从5个维度详解两者的区别:


    # 📊 一、架构设计对比

    特性 3主3从集群模式 哨兵模式
    数据分布 数据分片存储(16384个槽) 所有节点存储全量数据(无分片)
    节点角色 每个主节点管理部分槽,从节点做备份 一主多从,主节点负责所有写操作
    扩展性 支持水平扩展(增加分片) 仅支持垂直扩展(提升单节点性能)

    示例架构:

    • 集群模式:3个主节点各管理5461个哈希槽,每个主节点配1个从节点(共6节点)。
    • 哨兵模式:1个主节点 + 2个从节点 + 3个哨兵节点(独立进程)。

    # ⚙️ 二、故障转移机制

    # 集群模式

    • 局部故障转移:单个主节点宕机时,其从节点自动升主,其他分片不受影响。
    • 无需额外组件:故障转移由集群内部通过Gossip协议协商完成。
    • 切换时间:默认15秒(cluster-node-timeout参数控制)。

    # 哨兵模式

    • 全局故障转移:主节点宕机后,哨兵选举新主节点,切换所有从节点指向新主。
    • 依赖哨兵节点:需独立部署哨兵集群(至少3节点)监控和决策。
    • 切换流程:
      1. 主观下线(SDOWN):单个哨兵检测主节点失联。
      2. 客观下线(ODOWN):多数哨兵确认主节点故障。
      3. 选举领导者哨兵,执行故障转移。

    # 📈 三、性能与扩展性

    场景 集群模式 哨兵模式
    写入性能 并发写入多个分片(支持高并发) 所有写操作集中在单主节点
    内存利用率 数据分片存储,无冗余 所有节点全量数据,内存利用率低
    扩容成本 动态增删节点,自动重分配槽 需停机修改配置,复杂度高

    案例:
    10GB数据写入时,集群模式可将数据分散到3个主节点(每个约3.3GB),而哨兵模式需单节点承担全部写入压力。


    # ⚠️ 四、使用限制

    # 集群模式

    • 多键操作限制:需确保所有key在同一分片(相同哈希槽),否则报错。
    • 事务支持:仅支持同一分片内的事务。
    • 客户端兼容性:需支持重定向(如-MOVED响应)。

    # 哨兵模式

    • 数据一致性风险:主从切换期间可能丢失部分异步复制的数据。
    • 配置复杂度:需维护哨兵集群的配置和状态。

    # 🏷️ 五、适用场景总结

    场景 推荐模式 原因
    海量数据+高并发(如电商平台) 3主3从集群模式 分片提升并发能力,水平扩展支持业务增长
    中小规模+高可用需求(如配置中心) 哨兵模式 自动故障转移,配置简单
    读写分离场景 哨兵模式 从节点分担读负载,主节点专注写操作
    多键事务操作 哨兵模式 无分片限制,支持跨key事务

    # 💎 总结:核心差异一句话

    • 集群模式:解决数据分片与分布式高可用,适合大规模、高并发场景。
    • 哨兵模式:解决主从自动切换问题,适合中小规模单一数据集的高可用需求。

    ⚠️ 特别注意:集群模式本身集成故障转移能力,无需额外部署哨兵。若在集群上叠加哨兵,反而增加架构复杂度!

    编辑 (opens new window)
    上次更新: 2025/06/24, 00:41:57
    redis3主3从搭建方式
    修改集群

    ← redis3主3从搭建方式 修改集群→

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