腾讯云数据库 Redis 介绍
产品版本:仅支持内存版。
产品架构:提供标准和集群两大架构版本。最大支持 16TB 的存储容量。
读写分离:支持开启和关闭读写分离功能,针对读多写少的业务场景,解决热点数据集中的读需求,最大支持 1 主 5 从模式,提供最大 5 倍的读性能扩展能力。
内存版(标准架构)支持 1~9 个副本,当副本数量大于等于 1 时,可以开启读写分离功能,通过副本节点扩展读性能。Redis 内存版(集群架构)支持 1 分片-128 分片的水平方向扩展,1 个-9 个副本扩展,扩容、缩容、规格变更过程中业务几乎无感知,保证服务最大可用性。
内存版支持 0.25GB - 64GB 规格,更大请选择集群版。
标准架构:支持 1 个或多个副本,是最通用的 Redis 版本。
集群架构:基于社区版 Redis Cluster 打造的全新版本,采用分布式架构,支持分片和副本的扩缩容。
架构升级:Redis 提供了标准架构升级至集群架构的功能,以满足标准架构在性能和容量不足时向集群架构升级。
读写分离:通过 Proxy 层实现自动读写分离。Proxy 将按照主节点只写,读请求被系统自动负载均衡到配置的只读节点。
多可用区部署:指实例的主从节点分别部署在同一地域不同可用区的容灾架构,具有更高的可用性。
自动容灾:采用双机热备架构,主机故障后,访问秒级切换到备机。
RDB 持久化:云数据库后台服务会根据备份策略周期性地为存储引擎中保存的数据创建快照,生成 RDB 文件,保存到磁盘中,实现数据的持久化。
架构
Redis 引擎提供纯原生的 Redis 交互体验,支持多样化的应用场景。无论是标准部署还是集群架构,都能灵活适应,满足不同用户的业务需求。
- 标准架构:当副本数大于 0 时,主节点(Master)和副本节点(Slave)数据实时同步,主节点故障时系统自动秒级切换,副本节点接管业务,全程自动且对业务无影响,主从架构保障系统服务具有高可用性,提供 0.25GB - 64GB 规格。

- 集群架构:集群(Cluster)实例采用分布式架构,可以灵活选择分片数量、分片容量以及副本数量,提供业务无感知的扩容和缩容服务,提供 2GB - 8TB 的规格,支持千万级 QPS 性能。

副本数量等于 1 时,Redis 提供数据主从实时热备(同一可用区内,跨服务器高可用)。HA 系统监测到节点故障后,会将请求切换到从节点,并且新增一个从节点加入到系统。
代理层 Proxy
在采用云数据库 Redis 的集群架构和读写分离时,代理服务器 Proxy 扮演着至关重要的角色,负责执行路由分配、负载均衡以及自动故障切换等关键任务。

转发规则
- 基础转发规则:
- 集群架构
- 操作单个 Key 的命令,每个 Key 通常存储在一个分片上,Proxy 会直接将请求发送到该 Key 所属的槽(slot)位。
- 当操作涉及多个 Key 时,如果这些 Key 存储在不同的数据分片,Proxy 会将命令拆分成多个子命令,每个子命令只涉及一个 Key,将每个 Key 分别发送给对应的分片。
- 读写分离
- 写请求:因为所有的数据变更都需要在主节点上进行,Proxy 将其直接转发到主节点(Master)。
- 读请求:Proxy 根据从节点的实际性能和当前负载动态调整权重,将读请求均衡分配到每个从节点。当前暂不支持自定义具体的节点。
- 集群架构
- 特定命令转发规则
- Proxy 会将事务命令(MULTI 或 EXEC)、Lua 脚本命令(EVAL 或 EVALSHA)、SCAN、INFO、发布订阅命令(PUBLISH、SUBSCRIBE 等)转发至主节点。
多可用区部署
云数据库 Redis 支持同地域下跨多个可用区部署副本,相对单可用区实例(主节点和副本节点在同一可用区),多可用区实例具有更高的可用性和容灾能力。
- 单可用区:主机、机架级容灾能力。
- 多可用区:主机、机架、可用区级容灾能力。
部署架构:

架构说明:
- LB(负载均衡):Redis 的标准架构和集群架构都有 Proxy,且 Proxy 的数量 ≥ 3,因此需要通过 LB 来均衡访问。
- VIP:多 AZ(可用区)的实例只有一个 VIP,这个 VIP 在整个 Region 都可以访问,Redis 的 HA 并不会导致 VIP 变化。
- Proxy:代理接入服务,实现请求路由功能,用于分发用户数据请求。
- Master:主节点
- Replica:从节点副本
- 主可用区:主节点所在的可用区被称为主可用区,除非手动在控制台变更,否则主可用区将始终保持不变,主节点故障后可能会导致主节点切换到副本可用区,这个状态是临时的,HA 系统将在满足条件的前提下,在数分钟内将主节点迁回到主可用区,迁移过程是无损的,除非您的业务使用了阻塞命令,如 BLPOP、BLPUSH。
故障切换机制:Redis 标准架构和集群架构采用的是 Redis Cluster 原生的集群管理机制,依靠集群内节点之间的 Gossip 协议来进行节点状态判断,节点故障判断的时效性取决于 cluster-node-timeout 参数,默认值是 15s,建议不要更改该参数。节点故障判断请参考 Redis Cluster。
主节点选举:相对原生的 Cluster Failover 机制,腾讯云 Redis 引入了主可用区优先切换的逻辑,以保障主可用区业务的访问时延,具体机制如下:
- 数据最新的节点优先选主。
- 数据相同,主可用区的副本优先选主。
跨可用区访问:
- 未开启副本只读的实例,读写请求都会经过本可用区的 Proxy 路由到主节点,保障数据的一致性,同时保障最多仅有一次的 AZ 穿越。
- 开启副本只读(读写分离)的实例,写请求将路由到主节点,读请求将路由到本可用区的副本节点,满足业务就近访问的诉求。
跨可用区访问将存在 2~5ms 时延。
部署推荐
两可用区部署:两可用区 1 主 3 副本部署,主可用区 1 主 1 副本,备可用区做负载均衡,每个可用区两个节点,可保障单机故障读请求不跨可用区,单可用区故障后仍然具备主备高可用。该方案适用于对可用性和访问延迟要求较高的场景。

三可用区部署:三可用区 1 主 2 副本部署,每个可用区部署一个节点,单个主机和单个可用区故障,仍可以提供主备跨可用区高可用。该方案适用于对延迟要求不敏感,但是对可用性要求极高的场景。

地域 Region,是指物理的数据中心的地理区域,不同地域之间的网络完全隔离,不同地域之间的云产品默认不能通过内网通信。
可用区:在同一地域内电力和网络互相独立的物理数据中心,可用区之间内网互通,可用区内网络延时更小,保证可用区间故障互相隔离,不出现故障扩散,使得用户的业务持续在线服务。
VPC:私有网络,是自定义的逻辑隔离网络空间,可以为云服务器、云数据库等资源构建逻辑隔离的、用户自定义配置的网络空间,以提升用户云上资源的安全性,并满足不同的应用场景需求。
升级
升级实例版本:
- 支持低版本实例向高版本升级,不支持降级兼容版本。
- 支持跨版本升级。
- 实例的小版本升级,系统会自动检测,不支持自定义目标版本。
升级流程:
- 资源申请:申请新版本实例资源,包括 Proxy 资源、Redis 主节点和副本节点资源。
- 同步数据:从低版本实例同步全量和增量数据至新版本实例。
- 等待切换:等待数据同步完成,或者等待切换时间窗口。
- 版本切换:到达切换条件(数据同步接近完成,并且符合切换时间窗口),用户停止旧版本实例写入,从旧版本实例解绑 VIP,绑定 VIP 至新实例。
- 升级完成:更新实例状态。
升级影响:版本升级过程主要为数据同步和实例切换两个过程:
- 数据同步过程中,对服务无影响。
- 数据切换过程中,实例将存在 1 分钟以内的只读状态(等待数据同步完成),以及连接闪断(秒级)的影响,需要业务具备自动重连机制。
升级过程中存量连接会断开(闪断),业务需要有重连机制。
升级说明:
- 不支持跨版本架构升级
- 不支持从集群架构降级至标准架构
- 暂不支持跨可用区升级架构
Proxy 升级:数据切换时将导致实例出现秒级连接闪断及最长 1 分钟的只读状态(同步数据所需),需确保业务代码具备自动重连能力。
备份与恢复
支持周期性定时对实例的数据进行备份,同时支持在任意时刻立即进行备份,并生成 RDB 格式的数据库备份文件,持久化存储。
数据备份:
- 自动备份,为防止增加主库处理负担,备份数据来源于数据库从节点。
- 手动备份