首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >腾讯云Redis高性能与高可用性技术架构及优化实践

腾讯云Redis高性能与高可用性技术架构及优化实践

原创
作者头像
IT资讯研究所
发布2026-05-30 17:36:53
发布2026-05-30 17:36:53
90
举报

来源: 2024腾讯全球数字生态大会

主讲人: 唐荣

一、 产品定位与核心亮点

技术定义: 该产品为基于 Shared nothing 架构的云Redis服务,采用 基于Slot的分片管理 机制,提供 Proxy代理层Redis-server集群版 分离的设计。

核心差异化卖点:

  • 极致的性能优化: 通过连接优化与分布式网络架构,实现读写性能的大幅跃升。
  • 无损业务变更: 在集群拓扑发生变更(扩缩容、迁移)时,通过特定的迁移技术保障对业务 无影响无报错
  • 架构解耦: 利用Proxy层屏蔽客户端差异与后端依赖,实现网络流量隔离与监控聚合,减少对Redis核心代码的入侵。

二、 产品应用场景

目标受众: 使用Redis集群的云服务客户,特别是面临大规模数据吞吐和高可用性要求的业务。

痛点与场景:

  • 场景一:资源弹性伸缩。 业务增长需进行扩分片、扩容、扩副本,或业务缩减需进行缩分片、缩容、缩副本时,如何避免节点迁移导致的业务中断。
  • 场景二:节点故障处理。 机器异常或节点宕机时,如何实现自动容灾与平滑迁移。
  • 场景三:命令特殊性问题。 在使用长连接(如 subscribe)、阻塞命令(如 blpop)或事务(multi/exec)时,如何避免在变配过程中发生报错或失败。
  • 场景四:高并发性能瓶颈。 在高连接数下,如何降低CPU消耗与网络时延,提升吞吐率(QPS)。

三、 应用框架和功能介绍

1. 功能框架

  • Redis-server集群版:
    • Shared nothing 架构。
    • 基于Slot的分片管理,支持 平滑迁移动态分片(hot sharding)
    • 具备 数据均衡(rebalance)集群自治 能力。
    • 采用 Gossip 协议,实现 自动发现(auto detect)自动容灾(auto failover)
  • Proxy层(无状态):
    • 屏蔽客户端差异屏蔽客户端对后端依赖
    • 网络流量隔离,承载更丰富的功能。
    • 监控指标聚合上报,减少对Redis代码的入侵。

2. 硬核指标

  • 性能提升(优化后 vs 优化前):
    • 读请求性能提升 287%
    • 写请求性能提升 240%
    • 计算公式: (优化后QPS - 优化前QPS) / 优化前QPS * 100%
  • 基准吞吐(QPS):
    • GET QPS (优化前): 155k
    • GET QPS (优化后): 600k
    • GET QPS (峰值表现): 117k (注:原文表格数据)
  • 连接数与吞吐关系(SET操作参考):
    • 连接数1:480
    • 连接数10:320
    • 连接数100:300
    • 连接数200:400
    • 连接数400:300
  • Pipeline批处理(SET操作参考):
    • Pipeline 2: 3
    • Pipeline 16: 25
    • Pipeline 30: 20

3. 产品优势

  • 无损迁移能力(针对变更场景):
    • 长连接迁移: 针对 publish/subscribe 命令,Proxy同时维护新旧Master连接,保证消息不丢失;转发至旧Master的publish消息会模拟 SET 命令报 MOVED,由Proxy重定向至新Master。
    • 阻塞命令重定向: 改造Master节点,Proxy直接重定向 blpop 等阻塞命令至新Master,避免报错 unblock
    • 事务回放: Proxy缓存事务信息,若事务执行异常,将在新Master上进行事务回放,确保事务完整性。
    • 安全断连: Proxy在断开旧Master连接前,会校验其角色是否为Slave,角色正常才完成迁移。
  • 连接优化(针对性能场景):
    • Pipeline合并请求: 基于Pipeline合并请求包转发,降低Redis连接数,减少网络IO开销。
    • 命令连接区分: 区分普通命令与阻塞命令使用的连接,避免阻塞命令影响其他客户端正常命令的执行。
    • 顺序保证: Proxy转发命令在后端并行执行,但不影响最终执行结果的顺序。
  • 网络架构优化:
    • 分布式网络: 仅在建连阶段经过VPCGW,请求阶段Client直接请求Proxy。相比每次请求都需经过VPCGW的集中式网络,大幅减少了网络跳数,降低时延。

4. 荣誉背书

  • 原文未提及相关技术荣誉或奖项。

四、 典型案例

案例:Redis集群变更客户收益反馈

  • 背景: 客户在使用Redis集群过程中,面临机器异常节点故障以及集群扩缩容(扩分片、扩容、扩副本、缩分片、缩容、缩副本、节点迁移)的业务需求。
  • 解决方案: 采用了包含长连接迁移、阻塞命令重定向、事务回放机制在内的完整无损迁移方案。
  • 成效:
    • 对业务无影响: 实现了集群拓扑变更过程中的业务透明。
    • 迁移无报错: 解决了变配异常(如subscribe断连、bpop报错unblock、事务失败)的问题,客户收益显著。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、 产品定位与核心亮点
  • 二、 产品应用场景
  • 三、 应用框架和功能介绍
    • 1. 功能框架
    • 2. 硬核指标
    • 3. 产品优势
    • 4. 荣誉背书
  • 四、 典型案例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档