Redis 集群方案 2023-09-21 默认分类 暂无评论 54 次阅读 **常见的集群方案** - 主从复制模式 - Sentinel(哨兵)模式 - Cluster模式 主从复制模式 主从复制模式中包含一个主数据库(master)与一个或多个从数据库(slave),如下图 ![image.png](http://res.i-cooltea.top/image/20240827075853.png) **适用场景**: 读多写少的场景,能够容忍一定的数据延迟 Sentinel(哨兵)模式 ![image.png](http://res.i-cooltea.top/image/20240827083903.png) 在主从模式的基础上 增加了哨兵,检测master服务的状态 当服务宕机时,会自动选举出一个从节点作为新的master节点 提升可用性 Cluster模式 Cluster模式实现了Redis的[分布式存储](https://cloud.tencent.com/product/cos?from_column=20065&from=20065), 即每台节点存储不同的内容,来解决在线扩容的问题。如图 ![image.png](http://res.i-cooltea.top/image/20240827090103.png) Cluster采用**无中心结构**,它的特点如下: 1. 所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽 2. 节点的fail是通过集群中超过半数的节点检测失效时才生效 3. 客户端与redis节点直连,不需要中间代理层.客户端不需要连接集群所有节点, 连接集群中任何一个可用节点即可, Redis Cluster 协议会将客户端的请求路由到正确的分片节点 | **对比项** | **Redis Cluster 模式** | **Redis 主从复制模式** | | -------- | --------------------------------------------------------- | -------------------------------------- | | **适用场景** | 大规模数据存储,读写并发高,自动故障转移,高可用性需求强。 | 读多写少,中小规模数据存储,简单的高可用性需求。 | | **数据分布** | 自动分片,数据水平分布到多个节点上。 | 所有数据存储在主节点,从节点仅作数据备份和读取。 | | **高可用性** | 支持自动故障转移,节点故障时自动切换,避免单点故障。能够在节点故障时自动切换到备用节点,保持集群的可用性。 | 通过 Redis Sentinel 实现主从切换,但主节点可能成为单点故障。 | | **扩展性** | 通过增加节点实现水平扩展,支持动态扩展存储和处理能力。 | 扩展性有限,主要用于扩展读取性能,无法水平扩展写入能力。 | | **读写分离** | 读写均可分散到多个节点,写入能力随节点数量扩展。 | 读写分离,读操作可以从从节点读取,但写操作集中在主节点。 | | **复杂性** | 部署和管理较复杂,涉及分片、自动路由、节点间通信等。 | 部署和管理相对简单,适合初期系统,后期可扩展。 | | **一致性** | 可能会遇到 eventual consistency(最终一致性)问题。 | 数据复制为异步,可能存在短暂的数据不一致问题。 | | **性能优势** | 支持高并发读写,通过分片提升吞吐量和存储容量。 | 适合读多写少的场景,通过读写分离提升读取性能。 | | **典型应用** | 高可用性、高扩展性需求的大型分布式系统。 | 中小规模应用,特别是读多写少的场景,简单的高可用性需求。 | | **缺点** | 系统复杂性高,客户端必须支持 Cluster,可能有部分数据不一致性。 | 单主节点可能成为写操作瓶颈,扩展性受限,复制可能存在延迟。 | | QPS | 数十万到数百万 | 数万到数十万的 QPS | | | | | 参考 [一文搞懂 Redis 的三种集群方案](https://cloud.tencent.com/developer/article/1751001) 文章目录 主从复制模式 Sentinel(哨兵)模式 Cluster模式 参考 标签: redis 转载请注明文章来源 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭