redis集群有几种模式?分别讲讲这些集群模式的基本原理是什么?

📅 发布时间:2026/7/6 20:45:48 👁️ 浏览次数:
redis集群有几种模式?分别讲讲这些集群模式的基本原理是什么?
一、主从复制模式Replication1. 基本原理主从架构由一个主节点Master和多个从节点Slave组成主节点负责写操作从节点通过异步复制同步主节点的数据。数据同步从节点启动后向主节点发送 SYNC 命令。主节点生成当前数据的快照RDB 文件发送给从节点。从节点加载 RDB 文件后主节点继续将后续的写命令发送给从节点保持数据一致性。读写分离读请求可以分散到从节点提升读性能写请求仍由主节点处理。2. 优点高可用主节点宕机后可以手动提升从节点为主节点。负载均衡通过读写分离提升读吞吐量。3. 缺点单点写入主节点是写操作的唯一入口可能成为性能瓶颈。数据延迟异步复制可能导致从节点数据短暂不一致。二、哨兵模式Sentinel1. 定位严格来说是主从复制的增强版用于自动化故障转移。2. 原理哨兵节点监控主从节点的健康状态。主节点故障时哨兵通过投票机制选举新的主节点。客户端通过哨兵获取最新的主节点地址。三、分片集群模式Cluster1. 基本原理数据分片将数据划分为 16384 个哈希槽Hash Slot每个节点负责一部分槽。分布式架构客户端请求的键通过 CRC16 算法计算哈希值再对 16384 取模确定所属的槽。节点间通过 Gossip 协议通信维护集群状态如槽分配、节点故障检测。如果客户端访问的键不在当前节点节点会返回 MOVED 重定向错误引导客户端访问正确的节点。2. 优点高可用每个分片可以配置主从复制一主多从主节点故障时从节点自动晋升。水平扩展通过增加节点提升集群容量和性能。自动故障转移主节点宕机时从节点自动接管。3. 缺点复杂度高需要管理分片、槽分配和节点通信。事务限制跨节点的多键操作如事务、Lua 脚本可能受限。四、总结根据业务需求如数据量、性能、复杂度选择合适的集群模式。