Redis读写分离版的架构和服务方式与标准版、集群版有所区别。本文详细介绍了读写分离架构中各组件的工作模式以及使用读写分离版需要注意的事项。

架构说明

  • 云数据库Redis读写分离版提供一个或多个只读节点(read-only replica)。
  • 主节点(master)和只读节点间单向链式复制数据。
  • 代理服务器(proxy)根据命令的读写属性自动将请求转发到主节点和只读节点:
    • 写请求转发到主节点;
    • 读请求平均分配到主节点和所有只读节点。
  • Lua脚本及事务中的请求都会转发到主节点。
  • 高可用(HA)模块监控主节点和只读节点的健康状况并负责故障切换。
图 1. 读写分离版架构

Redis读写分离实例架构图

建议与使用须知

  • 当一个只读节点发生故障时,请求会转发到其他节点;如果所有只读节点均不可用,请求会全部转发到主节点。只读节点异常可能导致主节点负载提高、响应时间变长,因此在读负载高的业务场景建议使用多个只读节点。
  • 只读节点发生异常时,高可用模块会暂停异常节点的服务,重新挂载一个可用的只读节点。该过程涉及资源分配、实例创建数据同步以及服务加载,消耗的时间与业务负载及数据量有关。云数据库Redis版不承诺只读节点的恢复时间指标。
  • 某些场景会触发只读节点的全量同步,例如在主节点触发高可用切换后。全量同步期间只读节点不提供服务并返回-LOADING Redis is loading the dataset in memory\r\n信息。
  • 主节点依然遵从云数据库Redis版的服务等级协议