Redis 分片集群
Redis分片集群是Redis官方推出的分布式水平扩展方案,核心解决单机内存不足、并发承载上限的问题,实现数据多节点分片存储与高可用。
一、核心架构原理
哈希槽机制:整个集群将数据空间划分为16384个固定哈希槽,编号0到16383。每个键通过CRC16算法计算哈希值后映射到对应槽位。
节点分片分配:集群启动时,16384个槽会平均分配给各个Redis主节点,比如3个主节点各分配约5461个槽位。
去中心化设计:所有节点地位平等,通过Gossip协议互相通信同步槽位信息,没有中心节点避免单点故障。
二、核心运行机制
客户端路由逻辑:客户端缓存槽位到节点的映射表,操作时先计算键对应的槽号,直接发送请求到对应节点。若缓存信息过期,节点会返回MOVED错误告知正确节点地址,客户端更新缓存后重试。
高可用保障:每个主节点可配置1-N个从节点,主节点不可用时,从节点通过选举算法成为新主节点,故障自动转移对客户端透明。
推荐最小配置:至少需要3个主节点+3个从节点才能组成稳定集群,每个主节点配一个从节点。
三、适用场景
适合数据量超过50GB、单机内存无法承载的大规模缓存场景,支持水平扩展,新增节点时仅需移动对应槽位数据即可,不影响集群对外服务。
