更新时间:2022-04-29 GMT+08:00
分享

Redis主备实例

DCS Redis、Memcached两种缓存类型都支持主备实例,本章节主要介绍Redis缓存类型的主备实例,其版本有:Redis 3.0、Redis 4.0、Redis 5.0和Redis 6.0。

其中,Redis 3.0和Redis 6.0主备实例不支持读写分离,Redis 4.0、Redis 5.0主备实例默认支持读写分离,主备读写分离连接操作,请参考连接读写分离实例

  • DCS Redis 3.0已下线,暂停售卖,建议使用Redis 4.0/5.0。
  • 不支持Redis版本的升级,例如,不支持Redis 3.0主备升级为Redis 4.0/5.0主备实例。如果需要使用高版本Redis主备实例,建议重新创建高版本Redis主备实例,然后将原有Redis实例的数据迁移到高版本实例上。

主备实例特点

DCS的主备实例在单机实例基础上,增强服务高可用以及数据高可靠性。

主备实例具有以下特性:

  1. 持久化,确保数据高可靠

    实例包含一个主节点和一个备节点,都默认开启数据持久化。

    Redis 3.0主备实例的备节点对用户不可见,不支持客户端直接读写数据。

    Redis 4.0和Redis 5.0主备实例的备节点对用户可见,用户可以通过只读地址连接到备节点上读取数据。

    Redis 6.0主备实例的备节点对用户可见,用户可以通过只读地址连接到备节点上读取数据。

  2. 数据同步

    主备节点通过增量数据同步的方式保持缓存数据一致。

    当网络发生异常或有节点故障时,主备实例会在故障恢复后进行一次全量同步,保持数据一致性。

  3. 故障后自动切换主节点,服务高可用

    当主节点故障后,连接会有秒级中断、不可用,备节点在30秒内自动完成主备切换,切换完成后恢复正常访问,无需用户操作,保证业务平稳运行。

  4. 多种容灾策略

    跨AZ部署(可用区):DCS支持将主备实例部署在不同的AZ内,节点间电力与网络均物理隔离。您可以将应用程序也进行跨AZ部署,从而达到数据与应用全部高可用。

  5. 读写分离

    Redis 4.0和Redis 5.0主备实例支持客户端读写分离,分别提供可读写的连接地址(主节点)和只读地址(备节点),客户端连接时,可分别选择主节点或备节点。

Redis 3.0主备实例架构设计

DCS的Redis 3.0主备实例架构,如图1所示。

图1 Redis 3.0主备实例示意图

示意图说明:

  • VPC

    虚拟私有云。实例的内部所有服务器节点,都运行在相同VPC中。

    VPC内访问,客户端需要与主备实例处于相同VPC,并且配置安全组访问规则。

    Redis 3.0主备实例除了VPC内访问,还支持公网访问,客户端可以部署在外部网络,并通过实例绑定的弹性公网ip地址访问Redis主备实例。Redis 4.0和5.0主备及Redis 6.0主备实例暂不支持公网访问。

    相关参考:公网连接Redis3.0实例如何选择和配置Redis实例以及客户端的安全组

  • 客户应用

    运行在ECS上的客户应用程序,即Redis的客户端。

    Redis实例兼容开源协议,可直接使用开源客户端进行连接,关于多语言客户端连接示例,请参考用户指南的连接缓存实例

  • DCS缓存实例

    DCS实例。主备实例包含了Master和Replica两个节点。默认开启数据持久化功能,同时保持节点间数据同步。

    DCS实时探测实例可用性,当主节点故障后,备节点升级为主节点,恢复业务。

    Redis的访问端口默认为6379。

Redis 4.0和Redis 5.0主备实例架构设计

Redis 4.0和Redis 5.0主备实例支持读写分离,架构设计如图2所示。

图2 Redis 4.0和Redis 5.0主备实例示意图

图说明如下:

  1. Redis 4.0和Redis 5.0主备读写分离实例,分别提供可读写域名和只读域名,连接主节点和备节点。

    可读写地址和只读地址,可通过控制台的实例详情页面获取。

  2. Redis 4.0和Redis 5.0主备实例支持使用哨兵模式(Sentinel)进行管理,Sentinel会一直监控主备节点是否正常运行,当主节点出现故障时,进行主备倒换。

    Sentinel对用户不可见,仅在服务内部中使用。Sentinel的详细介绍可参考什么是哨兵

  3. 只读节点和读写节点规格一致,用户创建主备实例时,默认包含一个主节点和一个备节点。
    • Redis 4.0和Redis 5.0支持定义端口,如果不自定义端口,则使用默认端口6379。图中以默认端口6379为例,如果已自定义端口,请根据实际情况替换。
    • Redis 4.0和Redis 5.0主备实例在只读域名不带负载均衡,对于可靠性和时延敏感的应用场景,建议使用集群或读写分离类型的实例。
分享:

    相关文档

    相关产品

close