👌redis sentinal与redis cluster的区别?

👌redis sentinal与redis cluster的区别?

口语化答案

哨兵和集群是两种非常不同的模式。一个重点关注高可用,一个关注水平扩展和数据分片。哨兵主要解决主服务器故障的自动切换问题。集群则是为了存储大量数据,将数据分布到多个节点。在存储上,哨兵不进行数据分片,集群则通过哈希槽的方式存储数据,集群的可用和切换采用了Gossip 协议,哨兵模式则依靠哨兵的检测。所以哨兵适合小规模的高可用,集群适合大规模的数据存储。以上。

题目解析

这道题还是挺重要的,经常有人会将两种模式弄混。二者模式区别非常大,要重点关注。

面试得分点

高可用,水平扩展,数据分片,哈希槽

题目详细答案

先来了解概念:

redis sentinal 哨兵模式

redis cluster 集群模式

哨兵模式

Sentinel是一种用于监控Redis主从复制结构并实现自动故障转移的系统。它主要关注的是高可用性,保证当主服务器发生故障时,能够自动将一个从服务器提升为新的主服务器,并通知客户端进行相应的切换。

集群模式

Cluster是一种分布式存储解决方案,支持自动分片和高可用性。支持主从复制和故障转移,还能够将数据分布在多个节点上,实现数据的水平扩展。

区别

哨兵模式 集群模式
架构区别 Sentinel节点监控主从服务器的状态,当主服务器故障时,Sentinel节点会选举一个新的主服务器。 数据自动分片存储在多个节点上,每个节点负责一部分数据。每个分片有一个主节点和一个或多个从节点。使用Gossip协议进行节点间通信,自动检测故障并进行主从切换。
数据存储 数据存储在一个主服务器及其从服务器上,不进行数据分片。 数据通过哈希槽(hash slots)机制分布在多个节点上,每个节点负责一部分哈希槽。
扩展性 只提供高可用性,不能水平扩展数据存储容量。 支持水平扩展,可以通过增加节点来扩展数据存储容量和处理能力。
高可用 通过心跳机制检测主服务器的状态,自动选举新的主服务器并更新拓扑结构。 使用Gossip协议进行节点间的故障检测,自动进行主从切换,确保集群的高可用性。
使用场景 适用于小规模的Redis部署,主要关注高可用性。不需要数据分片。 适用于大规模的Redis部署,支持水平扩展。需要同时满足高可用性和数据分片、扩展性需求。
 wechat
天生我才必有用