You need to enable JavaScript to run this app.
导航

核心组件和产品架构

最近更新时间2024.01.17 20:07:01

首次发布时间2021.11.04 14:15:17

本文介绍缓存数据库 Redis 版的核心组件和产品架构。

核心组件

数据节点

数据节点是构建缓存数据库 Redis 版实例的最小单位,每个实例至少含有 1 个数据节点。若每个分片中仅包含 1 个节点,该实例无法提供数据持久化和高可用能力;若每个分片中节点个数超过 1 个,节点间一定具有主从关系。
实例中的每个数据节点均使用相同的 Redis 版本(即您创建实例时选择的 Redis 版本)。一个实例中的所有数据节点规格均相同,且包含相同的内存量。缓存数据库 Redis 版支持多种规格,不同规格提供不同的内存量。关于规格详情,请参见实例规格

代理节点

每个实例都含有代理节点(Proxy Node)。Proxy 节点是缓存数据库 Redis 版实例的代理服务器节点,用于实现 Redis 实例内部的高可用。同时 Proxy 节点还能识别和转发用户的读写请求,可以根据参数设置将请求发送到主节点或只读从节点,从而实现读写分离。读写分离的设置方法,请参见设置读写分离

分片

分片是由 1~6 个节点组成的分组。若分片中仅包含 1 个节点,这个节点为读写节点;若分片中节点个数超过 1 个,其中 1 个会作为主节点(也称读写节点),其它的为只读从节点(也称从节点)。
启用分片集群的 Redis 实例最多可以有 256 个分片,支持跨分片地对数据进行分区。您可以根据业务需要增加或减少分片。

不启用分片集群的 Redis 实例只含有 1 个分片,且不支持增加或减少分片。

复制

主备实例的每个分片中至少包含两个节点,其中 1 个主节点,其余的为从节点,主从节点间存在复制关系。

说明

单节点实例每个分片仅包含一个节点(主节点),不存在节点间的复制关系。

每个从节点都会通过异步复制机制与主节点的数据保持同步。应用程序可以从 Redis 实例中的任何节点读取数据,但只能将数据写入主节点。Redis 实例通过将读请求分布到多个从节点来增强可扩展性,同时还可以通过维护从节点的数据来确保高可用。您可增加从节点的个数来进一步提高可用性。

产品架构

缓存数据库 Redis 版当前支持如下启用和不启用分片集群两种架构。

启用分片集群

启用分片集群的 Redis 实例可以通过分片化分区来增加缓存的容量和并发连接数,Redis 实例类型不同,架构部署和支持的能力也不同。其中:

  • 主备实例
    主备实例的每个分片都包含了 1 个主节点和 1~5 个从节点,分片本身默认对外不可见。分片中主节点故障后,同一分片中的从节点会升级为主节点来继续提供服务。您可以通过读写分离服务,将写请求发往主节点处理,而读请求全部由从节点处理,来提升 Redis 实例的整体读写能力。
    image

  • 单节点实例
    单节点实例的每个分片只包含 1 个节点,不具备高可用(High Available,简称 HA)能力,不支持健康检测(health check)和主从切换(failover)功能,也不存在节点间的复制关系(Replication)。
    当节点出现故障时,系统会启用一个全新的节点,但节点数据会丢失。单节点实例不适用缓存数据库 Redis 版服务等级协议

    警告

    单节点实例不支持持久化和备份能力,无法保障数据可用性和服务连续性,建议仅在测试、学习等场景使用,不建议在生产环境中使用。

不启用分片集群

不启用分片集群的 Redis 实例仅包含 1 个分片,Redis 实例类型不同,架构部署和支持的能力也不同。其中:

  • 主备实例
    分片中主从节点的数据通过实时复制机制保持一致。当主节点故障后,从节点自动升级为主节点。不启用分片集群的 Redis 实例也支持设置读写分离服务。设置之后,您可以将写请求发往主节点处理,而读请求全部由从节点处理,提升 Redis 实例的整体读写能力。
    image

  • 单节点实例
    单节点实例只包含 1 个节点,不具备高可用能力,不支持健康检测和主从切换功能,也不存在节点间的复制关系。
    当节点出现故障时,系统会启用一个全新的节点,但节点数据会丢失。单节点实例不适用缓存数据库 Redis 版服务等级协议

    警告

    单节点实例不支持持久化和备份能力,无法保障数据可用性和服务连续性,建议仅在测试、学习等场景使用,不建议在生产环境中使用。