Skip to content
作者:daily5am创建:-更新:-
字数:预计阅读: 分钟访问量:--

Redis集群模式

AI生成声明: 本文档由AI辅助生成,旨在提供Redis集群模式的完整指南。

Redis集群提供了高可用和水平扩展能力,理解集群模式对于设计大规模系统至关重要。

核心问题

集群架构

Redis Cluster特点:

  • 无中心化架构
  • 数据分片存储
  • 自动故障转移
  • 支持水平扩展

数据分片

哈希槽(Hash Slot):

  • 共16384个槽位
  • 每个节点负责部分槽位
  • 通过CRC16(key) % 16384计算槽位

数据分布:

节点1: 0-5460
节点2: 5461-10922
节点3: 10923-16383

集群模式

  1. 主从模式

    • 一主多从
    • 主节点负责写
    • 从节点负责读
  2. 哨兵模式(Sentinel)

    • 监控主从节点
    • 自动故障转移
    • 配置提供者
  3. Cluster模式

    • 多主多从
    • 数据分片
    • 自动故障转移

集群配置

主从配置

conf
# 主节点
port 6379

# 从节点
port 6380
replicaof 127.0.0.1 6379

哨兵配置

conf
# sentinel.conf
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000

Cluster配置

conf
# cluster.conf
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000

故障转移

主节点故障

  1. 从节点检测到主节点故障
  2. 从节点发起选举
  3. 获得多数票的从节点升级为主节点
  4. 其他从节点指向新主节点

脑裂问题

原因:

  • 网络分区
  • 主节点被隔离
  • 出现多个主节点

解决:

  • 设置最小从节点数
  • 设置主节点超时时间

常见面试题

  1. Redis集群的优缺点?

    • 优点:高可用、水平扩展
    • 缺点:复杂度高、客户端支持有限
  2. 如何选择集群模式?

    • 小规模:主从
    • 中等规模:哨兵
    • 大规模:Cluster
  3. 数据分片的原理?

    • 使用哈希槽
    • 通过CRC16计算
    • 每个节点负责部分槽位