20230815
大约 2 分钟
1、Redis 的单机、哨兵、集群的区别和选型?
单机模式
在单机模式下,Redis 运行在单个实例上,所有的数据都存储在这一个实例中。优点包括部署简单、操作方便,适用于快速的数据缓存需求。
- 缺点
- 单点故障:如果 Redis 实例出现故障,数据可能会丢失。
- 有限的容量:内存容量受到物理服务器的限制。
- 不支持高可用性:无法提供自动故障转移或负载均衡。
哨兵模式
哨兵部署在单机部署的基础上,引入了哨兵节点,用于监控主节点的健康状态,并在主节点故障时自动进行切换。
哨兵模式提供了一定程度的高可用性,但不支持数据分片。
- 自动故障转移:当主节点出现问题时,哨兵节点会选举一个新的主节点,确保系统可用。
- 有限的扩展性:虽然可以通过增加哨兵节点来提高可用性,但在数据量和性能方面有限制。
集群模式
集群部署适用于需要高性能和高可用性的大规模应用。在集群模式下,数据被分片存储在多个节点上,每个节点负责管理一部分数据。
这种方式可以水平扩展,支持更大的数据集和更高的吞吐量。
哨兵节点的数量建议是奇数,在主节点出现故障时,可以确保达成多数决策,以选择新的主节点。
- 数据分片:数据被均匀分布在多个节点上,可以充分利用多台服务器的资源。
- 自动分片和负载均衡:数据分片和负载均衡由集群自动管理,无需手动干预。
- 高可用性:集群中的节点可以自动进行故障转移,确保系统可用性。
- 部署复杂:配置和维护集群需要一些额外的工作,包括节点的添加和删除、数据迁移等。