全方位解析云数据库Redis灾备简介!

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
全局流量管理 GTM,标准版 1个月
简介: 数据是很多业务的核心元素,作为数据载体的数据库承担着举足轻重的责任。本文将全方位地为您解析云数据库Redis版的灾备机制。

云栖号快速入门:【点击查看更多云产品快速入门】
不知道怎么入门?这里分分钟解决新手入门等基础问题,可快速完成产品配置操作!

数据是很多业务的核心元素,作为数据载体的数据库承担着举足轻重的责任。云数据库Redis版作为高性能的Key-Value数据库,在业务场景中往往承载着大量的重要数据。本文将全方位地为您解析云数据库Redis版的灾备机制。

云数据库Redis版容灾架构演进

程序在运行过程中总会遇到各种各样的问题,例如程序BUG、设备故障、机房断电等,理想的容灾机制能够在这些问题发生时,保证数据的一致性和业务可用性。云数据库Redis版为了保证业务的高可用,不断提升容灾能力,为不同的业务场景提供相应的高可用方案。

下图反映了云数据库Redis版容灾架构的演进历史。

图 1. Redis容灾架构演进

image
当前三种方案同时存在,您可以根据业务需求选择合适的方案。下文将对各方案进行详细介绍。

单可用区高可用机制

Redis全架构均支持单机房HA高可用架构。HA监控系统采用独立的平台化架构,提供跨可用区的高可用机制,使云数据库Redis版比自建Redis更稳定。

标准版-双副本

标准版-双副本实例采用双机主从(Master-Replica)架构,高可用HA模块侦测到主节点故障时,会自动进行主从切换,将Replica提升为Master,而原来的Master恢复连接后会成为新的Replica。实例默认开启数据持久化功能,支持数据自动备份,您可以使用备份文件回滚实例或者克隆实例,有效地解决误操作问题并实现可靠的灾备。

图 2. 标准版-双副本高可用架构

image

集群版-双副本

集群版-双副本实例由配置服务器、代理服务器和分片服务器组成:

  • 配置服务器(Config Server)是用于提供全局路由信息和配置信息的集群管理工具,采用遵循Raft协议的三副本集群架构;
  • 代理服务器(Proxy Server)为单节点架构,集群版结构中会有多个Proxy,系统自动对所有Proxy进行负载均衡及故障转移;
  • 分片服务器(Shard Server)同样采用双副本高可用架构,与标准版-双副本实例相同,主节点故障之后,HA模块会自动进行主从切换保证服务高可用,并更新Proxy Server和Config Server的信息。

图 3. 集群版-双副本高可用架构

image

读写分离版

读写分离版实例由代理服务器、主从架构的读写节点以及若干只读副本(Read-Only Replica)构成。

  • 高可用HA模块实时监测各节点的状态,在读写节点的主节点发生故障时发起主从切换,同时将只读节点连接到新的主节点上来;
  • 当只读节点发生故障时, HA模块将重建只读节点,并更新相应的路由及权重信息。
  • Proxy实时监控只读节点的服务状态,当发现某个只读节点状态异常时会降低该节点的权重。如果只读节点多次连接失败,Proxy将停止该节点的服务,直至其恢复正常。

图 4. 读写分离版高可用架构

image

同城容灾机制

Redis标准版和集群版提供跨双机房的同城容灾架构。如果业务为单一地域部署,且对容灾要求较高,可在创建云数据库 Redis版实例时,选择支持同城容灾的可用区,如下图中的华东1多可用区(B+F)或华东1多可用区(G+H)

图 5. 创建同城容灾实例

image
创建多可用区实例时,备机房将创建与主机房相同规格的Replica实例,主备机房的实例数据通过专门的复制通道同步。

当主机房出现电力或网络问题时,Replica实例将升级为Master实例,系统调用Config Server接口为Proxy更新路由信息。底层网络根据路由精细度实现故障切换,主机房网段的精细度高,因此在正常情况下,数据会直接传输到主机房的实例;当主机房出现故障时,不会上传路由明细信息,此时骨干网中只存在备机房的精细度较低的大网段路由信息,系统就会自动把请求路由到备机房,从而实现故障切换。

云数据库Redis版优化了Redis的同步机制,在同步位点上借鉴MySQL的GTID,实现了全局OpID,并且查找OpID的操作通过后台线程无锁进行。同时,发送AOF binlog是异步同步的过程,可以限流,保障了Redis服务的性能。

图 6. 同城容灾实例的数据同步过程

image

跨地域容灾

云数据库Redis版提供了全球范围的异地多活服务,即Redis全球多活,适用于需要在多地域同步部署的业务场景,与传统的灾备方案最大的区别在于多活。异地多活架构使业务能够在多个地域同时进行,各地域中的全球多活子实例实时双向同步。

B2BC77C1_BDDD_4b37_AF13_8C191702B203

Redis全球多活实例由多活子实例、同步通道以及通道管理器构成。

  • 多活子实例是基本服务单元,所有子实例均可读写;
  • 同步通道支持子实例间的实时双向同步,以及容忍度达到天级别的断点续传;
  • 通道管理器管理同步通道的生命周期,同时处理子实例在故障时的主从切换以及备份重搭,保证多活实例的高可用。

图 7. 全球多活同步架构

image

198415A6_2973_4955_AE5C_644A1C236856

使用Redis全球多活架构时,可在业务端设置切换条件,使得业务流量在某一地域出现问题时切换到另一地域的子实例上,保证业务的可用性。

Redis全球多活实例的创建方法请参见创建多活实例

云数据库Redis版提供了实例级别、可用区级别、地域级别的多种高可用架构,请根据业务需要选择合适的灾备方案。

本文来自 阿里云文档中心 云数据库Redis 灾备简介

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
3月前
|
SQL 数据挖掘 测试技术
南大通用GBase8s数据库:LISTAGG函数的解析
南大通用GBase8s数据库:LISTAGG函数的解析
|
3月前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
85 3
|
4月前
|
存储 NoSQL 关系型数据库
数据库技术深度解析:从基础到进阶
【10月更文挑战第17天】数据库技术深度解析:从基础到进阶
163 0
|
3月前
|
存储 负载均衡 监控
数据库多实例的深入解析
【10月更文挑战第24天】数据库多实例是一种重要的数据库架构方式,它为数据库的高效运行和灵活管理提供了多种优势。在实际应用中,需要根据具体的业务需求和技术环境,合理选择和配置多实例,以充分发挥其优势,提高数据库系统的性能和可靠性。随着技术的不断发展和进步,数据库多实例技术也将不断完善和创新,为数据库管理带来更多的可能性和便利。
150 57
|
2月前
|
存储 关系型数据库 MySQL
double ,FLOAT还是double(m,n)--深入解析MySQL数据库中双精度浮点数的使用
本文探讨了在MySQL中使用`float`和`double`时指定精度和刻度的影响。对于`float`,指定精度会影响存储大小:0-23位使用4字节单精度存储,24-53位使用8字节双精度存储。而对于`double`,指定精度和刻度对存储空间没有影响,但可以限制数值的输入范围,提高数据的规范性和业务意义。从性能角度看,`float`和`double`的区别不大,但在存储空间和数据输入方面,指定精度和刻度有助于优化和约束。
346 5
|
4月前
|
存储 消息中间件 缓存
Redis 简介
10月更文挑战第14天
159 58
|
3月前
|
SQL 存储 Oracle
南大通用GBase 8s数据库游标变量解析:提升数据库操作效率
南大通用GBase 8s 数据库游标变量解析:提升数据库操作效率
|
3月前
|
存储 消息中间件 NoSQL
Redis数据结构:List类型全面解析
Redis数据结构——List类型全面解析:存储多个有序的字符串,列表中每个字符串成为元素 Eelement,最多可以存储 2^32-1 个元素。可对列表两端插入(push)和弹出(pop)、获取指定范围的元素列表等,常见命令。 底层数据结构:3.2版本之前,底层采用**压缩链表ZipList**和**双向链表LinkedList**;3.2版本之后,底层数据结构为**快速链表QuickList** 列表是一种比较灵活的数据结构,可以充当栈、队列、阻塞队列,在实际开发中有很多应用场景。
|
3月前
|
SQL Java 数据库连接
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
|
4月前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
73 4

热门文章

最新文章

推荐镜像

更多