首页 > 数据库 >Redis 高效、安全的不停机数据迁移方案

Redis 高效、安全的不停机数据迁移方案

时间:2023-09-12 11:44:06浏览次数:45  
标签:NineData Redis 配置 停机 复制 迁移 数据

Redis 是目前最流行的键值对存储数据库,凭借高性能和丰富的数据类型的特性,不仅可以作为缓存,还可以作为一个可持久化的数据库存储。随着业务的发展和版本的迭代,必然会遇到内存不足、集群节点不够和 BUG 等一系列问题。为了防止这些问题导致的系统故障,常常会把对内存、集群节点扩缩容和版本升级等操作作为工作考核的重要一项。这些操作都涉及了数据的迁移,所以,提供高效、安全的不停机数据迁移方案是非常有必要的。

现在,NineData 在支持业务不中断的前提下,实现了配置简单、稳定、高效、安全的数据迁移服务,很好地满足版本升级、扩容、缩容等场景下对数据迁移和同步的需求。经实测,NineData 可在 2 分钟内完成 2000 万个 key(5GB)数据的迁移,平均 迁移速度为 164398 个 key/秒,性能是开源工具的 2 倍多。

1、传统的迁移方案

目前,数据迁移主要的方式有:使用 RDB 迁移,或一些开源工具进行数据迁移。对于这些方式的迁移,会存在一些问题:

  • 需要停机,对于拷贝 RDB 文件方式的迁移,不能保障在线业务,并且也不能兼容大版本升级。

  • 准确性难保障,不支持数据检测能力,迁移后的数据质量难以保障。

  • 可靠性差,对于开源工具,迁移异常后,进程直接退出。

  • 运维性差,不能进行暂停、限流、告警等操作。

2、高性能的迁移方案

NineData 提供的数据复制同时包含了数据迁移和数据同步的能力,在不影响业务的前提下,提供了高效、稳定、安全的迁移能力。相较于传统迁移比,NineData 的 Redis 数据迁移能力有如下优势:

▶︎ 简单易用

一分钟即可完成任务配置,并全自动化完成任务迁移。

▶︎ 强劲性能

通过动态攒批、队列优化、流式内存管理等核心技术,迁移性能达到 16 万 key/秒,性能是开源迁移工具的 2 倍,有效保障迁移效率。

▶︎ 高可靠

结合新型断点、异常诊断及丰富的修复手段,对于迁移过程中可能出现软硬件故障,提供完善的容灾能力,大大提高了迁移的成功率。

通过上述优势,保证了 NineData 在 Redis 迁移场景下的领先性。另外,NineData 还提供了对比功能,包含全量、快速和不一致复检的对比方式,并且也支持不同的对比频率。在迁移或复制结束后,通过对比,有效地保障数据的质量。

3、操作使用

NineData 在提供强大迁移能力的同时,也保证了使用的简单性,只需 1 分钟就能完成迁移任务的配置,实现完全自动化的数据迁移过程。下面我们来看下整个任务的配置过程:

3.1 迁移链路的配置

迁移链路的配置

 

1. 配置任务名称,选择要迁移的源和目标实例。

2. 选择复制类型,数据迁移选择结构和全量复制(数据迁移)。

3. 根据需要,选择合适的冲突处理策略。

3.2 选择迁移对象

选择迁移对象

 

选择迁移对象:可选择不同 DB 进行迁移。

3.3 配置映射对象

配置映射对象

 

配置映射:可以把源实例的多个数据库(0~15)映射到目标实例的指定 1 个或多个数据库,通过该映射能力可以实现类似于 MySQL 多源复制的场景。

3.4 预检查

预检查

 

通过完善的检查项,保证了迁移任务的稳定性。到此,我们就完成了一个高效、安全的 Redis 迁移任务的配置,当完成配置并启动任务后,NineData 会自动启动全量复制及增量复制过程,实现全自动化的数据迁移。

 

同时,为了提供更好的迁移体验,NineData 针对迁移过程提供了完善的观测、干预能力。其不但提供对象迁移的详细状态、进展、详情,还通过监控和日志透露后台线程的内部执行情况,帮助用户全方位追踪迁移进展。同时,还针对运行过程中可能出现的异常情况,提供基础诊断和迁移限流能力,让用户能够自主快速地诊断并修复链路,保障迁移稳定性。迁移期间的信息:

NineData针对迁移过程提供了完善的观测能力

 

NineData提供完善的可干预能力

 

NineData提供基础诊断和迁移限流能力

4、总结

NineData 基于全量复制、增量日志复制技术,提供了高效、安全可靠的 Redis 不停机迁移方案。当然,除了 Redis,NineData 已经支持数十种常见数据库的迁移复制,实现数据库迁移、数据容灾、数据双活、数据仓库实时集成等业务场景。同时,除了 SAAS 模式外,还提供了企业专属集群模式,满足企业最高的数据安全合规要求。目前,NineData 已在运营商、金融、制造业、地产、电商等多个行业完成大规模应用实践。如果您感兴趣的话,可以登录官网:数据迁移-迁移工具-数据传输-NineData-玖章算术,立即开始使用。

标签:NineData,Redis,配置,停机,复制,迁移,数据
From: https://www.cnblogs.com/ninedata/p/17695778.html

相关文章

  • Redis大揭秘:如何秒级存入百万数据?
    大家好,我是小米,一个热爱技术分享的小伙伴。最近在面试中遇到了一个有趣的问题:Redis里怎么快速存入百万数据?今天,我就来和大家分享一下这个有趣的问题,希望对大家有所帮助。Redis简介首先,让我们来简单了解一下Redis。Redis是一个高性能的键值存储系统,被广泛用于缓存、队列和实时分......
  • Redis从入门到放弃(2):数据类型
    Redis从入门到放弃(2):数据类型 在Redis中,数据以键值对的形式存储。Redis支持五种主要的数据类型,每种类型都有不同的用途和特性。本文将介绍Redis的五种数据类型:字符串(string),哈希(hash),列表(list),集合(set)和有序集合(sortedset)。1.字符串(String)介绍字符串是Redis中最基本的数据......
  • Redis从入门到放弃(1):安装配置
    Redis从入门到放弃(1):安装配置 1.介绍Redis是一个高性能的开源key-value数据库。它被广泛应用于缓存、会话存储、实时分析、消息队列等场景。Redis具有以下三个主要特点:数据持久化:Redis支持将内存中的数据保存到磁盘上,确保数据在断电或重启后不丢失。多样数据结构:除了支持......
  • Redis缓存数据和表数据一致性之延时双删策略
    一、什么是Redis延时双删?1、延迟双删策略是分布式系统中数据库存储和缓存数据保持一致性的常用策略,但它不是强一致。不管哪种方案,都无法绝对避免Redis存在脏数据的问题,只能减轻这个问题2、因为双删策略执行的结果是把redis中保存的那条数据删除了,以后的查询就都会去查询数据库......
  • Redis.conf 详解
    一、NETWORK网络bind127.0.0.1#绑定的IPprotected-modeno#保护模式port6379#端口设置二、GENERAL通用daemonizeyes#以守护进程的方式运行,默认是no,我们需要自己开启为yespidfile/var/run/redis_6379.pid#如果是后台启动,我们需要指定一个pid文......
  • 我是如何用 redis 分布式锁来解决线上历史业务问题的
    近期发现,开发功能的时候发现了一个mq消费顺序错乱(历史遗留问题),导致业务异常的问题,看看我是如何解决的问题抛出首先,简单介绍一下情况:线上k8s有多个pod会去消费mq中的消息,可是生产者发送的消息是期望一定要有序去消费,此时要表达的是,例如生产者如果发送了3个通知消息,分......
  • Redis7 10大数据类型(概述)
    一、概述二、数据类型1、redis字符串(String)String(字符串)string是redis最基本的类型,一个key对应一个value。string类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象。string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是51......
  • Redis为什么这么快?
    面试官:Redis为什么这么快?(qq.com)”因为它是内存数据库,不用往硬盘上写,所以快啊““基于内存实现”这个原因就不详细展开了哈,毕竟地球人都懂。空间换时间——SDS数据结构这里所说的空间为”内存空间“。Redis是用C语言写的,但它的String数据类型,并没有直接用C语言中的char*......
  • 【Azure Redis】Redis-CLI连接Redis 6380端口始终遇见 I/O Error
    问题描述使用Redis-cli连接Redis服务,因为工具无法直接支持TLS6380端口连接,所以需要使用stunnel配置TLS/SSL服务。根据文章(LinuxVM使用6380端口(SSL方式)连接AzureRedis(redis-cli&stunnel):https://www.cnblogs.com/lulight/p/14188279.html),配置stunnel后,始终无法连接成......
  • Redis 缓存击穿,缓存穿透,缓存雪崩原因+解决方案
    缓存击穿,缓存穿透,缓存雪崩的原因缓存击穿:key对应的数据存在,但在redis中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。缓存穿透:key对应的数据在数据源并不存在,每次针对此key的请求从缓存......