AI智能总结
唐荣主讲人: 性能优化 云Redis架构01 云Redis架构 Proxy功能 Redis服务重点 ⚫屏蔽客户端差异⚫屏蔽客户端对后端依赖⚫网络流量隔离⚫承载更丰富的功能⚫减少对Redis代码的入侵⚫监控指标聚合上报⚫无状态 ⚫Shared nothing⚫基于Slot的分片管理⚫支持平滑迁移⚫动态分片(hot sharding)⚫数据均衡(rebalance)⚫集群自治 ⚫自动发现(auto detect)⚫自动容灾(auto failover) 性能优化02 性能优化基础 评价Redis性能指标 网络时延 ⚫时延好越低性能越好 吞吐率 ⚫连接数——连接数越多消耗CPU越多⚫Pipeline——批处理模型 性能优化重点 连接优化处理 基于Pipeline合并请求包转发,降低连接数 命令转发顺序保证 命令转发连接区分 降低Redis网络IO开销、批量处理数据提升Redis性能 区分普通命令与阻塞命令使用连接,避免阻塞命令影响其他客户端正常命令 Proxy转发命令在后端Pipeline连接上顺序执行,不影响执行结果 网络优化 解决方案 ⚫集中式网络每次访问来回均需经过VPCGW,增加网络时延 ⚫分布式网络只有建连阶段需要访问VPCGW,请求阶段Client直接请求Proxy⚫分布式网络相较集中式网路减少大量网络跳数,降低时延 性能对比 ⚫读请求,优化后相比优化前性能提升287% ⚫性能提升百分比计算公式:(优化后QPS-优化前QPS)/优化前QPS*100% 可用性优化03 Redis集群变更 Redis集群变更 ⚫扩分片⚫扩容⚫扩副本⚫缩分片⚫缩容⚫缩副本⚫节点迁移 无损迁移 变配异常 ⚫长连接命令报错、异常如subscribe命令——断连⚫阻塞命令报错如blpop——报错unblock⚫事务执行失败 解决方案 ⚫长连接命令迁移⚫阻塞命令重定向⚫事务回放 长连接迁移 基于性能考虑,publish消息在Redis集群中不会广播 迁移重点 ⚫管控流程通知Proxy slot migrate迁移的目标节点、源节点⚫需要同时subscribe新旧Master节点,同时维护两个长连接⚫迁移过程中保证publish消息不丢失,转发至旧Master的publish消息会模拟SET命令报MOVED,进而Proxy重定向到新Master中。⚫Proxy在断开旧Master节点之前会校验其角色是否为Slave,角色正常才能断开连接、完成迁移 阻塞命令重定向以及事务回放 阻塞命令重定向 事务回放 ⚫管控通知Proxy启动迁移流程进入事务回放状态⚫Proxy缓存事务信息⚫事务执行异常在新Master回放事务 ⚫管控通知Proxy启动迁移流程⚫改造Master节点⚫Proxy重定向阻塞命令