Cluster集群:Redis的水平扩展方案
引言 单个Redis实例内存有限(通常16-64GB),如何存储TB级数据?如何实现水平扩展? Redis Cluster提供了原生的分布式解决方案。 一、Cluster概述 1.1 为什么需要Cluster? 主从复制+哨兵的局限: 主从架构: ┌──────────┐ │ Master │ (单节点存储所有数据) └────┬─────┘ │ 复制 ┌────┴────┬────────┐ │ Slave1 │ Slave2 │ (仅读扩展,不能写扩展) └─────────┴────────┘ 问题: ❌ 单点容量瓶颈(受限于单机内存) ❌ 写性能无法扩展(所有写操作都在主节点) ❌ 主节点故障影响所有数据访问 Cluster分片架构: Cluster: ┌───────┐ ┌───────┐ ┌───────┐ │Master1│ │Master2│ │Master3│ (数据分片存储) │Slave1 │ │Slave2 │ │Slave3 │ └───────┘ └───────┘ └───────┘ ↓ ↓ ↓ 存储1/3 存储1/3 存储1/3 数据 数据 数据 优势: ✅ 容量扩展(添加节点) ✅ 写性能扩展(多个主节点) ✅ 高可用(每个主节点有从节点) 1.2 核心概念 分片(Sharding):数据分散存储在多个节点 槽位(Slot):16384个槽位,分配给不同节点 节点(Node):独立的Redis实例 主从复制:每个主节点可有多个从节点 二、槽位机制 2.1 什么是槽位? Redis Cluster共有16384个槽位(0-16383): ...