Redis集群模式与主从模式有什么不同之处?

2023-09-11 15:03:17 浏览数 (1)

Redis是业界著名的内存型数据库,提供了多种数据结构和强大的性能,可用于高速读写需求场景,适合实时读/写操作。在Redis中,通常有两种数据分片或高可用方案:主从复制和分布式集群。

1、主从复制

Redis主从复制被广泛应用于redis服务器的读写分离和容灾备份场景。主从复制由一个主节点与若干个从节点组成,它们之间通过异步传输数据来保持数据一致。即主节点通过将最新的数据异步地发送给所有从节点,使得所有从节点都拥有主节点相同的数据副本。当主节点出现故障时,可以手动切换为任意从节点作为新的主节点,实现快速的容灾切换。

主从复制的优点在于:易于搭建维护,低成本高可用;只需要一个主节点和若干个从节点便能够实现读写分离和容灾备份等性能扩展和数据安全保护功能;同时尽管主节点和从节点数据输出达到高并发,但仍不会影响到主节点的性能表现。然而其不足之处也十分明显:无法支持大规模的数据存储和分布式集群方案,如果希望实现redis多数据中心部署则需要额外配合第三方软件如twemproxy或HAProxy等。

2、分布式集群

在Redis 3.0版本之后,Redis提供了分布式集群的支持,从而让Redis也可以通过横向扩展来提高性能和增加数据容量。Redis集群是将整个数据集划分成多个Shard,每个Shard被称为一个Hash slot。同样的,集群由多个Master节点组成,每个Master负责一至多个Shard。而在Redis集群中,则采用RDB快照备份模式并将副本均衡写入多个节点上,从而满足数据的高可靠性需求。

Redis集群相对于主从复制最大的区别在于:其支持数据自动分片,同时支持Cluster内的多Master节点协议的读写请求。但集群模式有一定不足之处——需要更多的硬件资源、网络带宽等设施;另外,在不同Master阶段变化及故障期间会产生部分业务异常(虽然Redis Cluster会尽可能跨Boundary维护Master-replica结构并迁移影响Slot分片)。

3、部署方式

在部署方式上,主从复制只需要将单一Redis服务器作为主节点并配置有一个或多个从节点,从而实现读写分离;而Redis集群则是引入了多余一台redis服务器的基础上,在其之上执行多自动寻取和维护切片的操作,极大地提高了单集群的可扩展性和容错性,并以此加持同业竞争态势。

0 人点赞