【赵渝强老师】Redis数据的迁移

简介: Redis提供move、dump+restore和migrate三种方式实现数据迁移。move用于库内迁移,dump+restore跨实例传输,migrate则原子性地完成键的迁移与删除,支持多键批量操作,提升效率。

b403.png

通过使用Redis的键迁移功能,可以把数据从一个Redis数据库中迁移到另一个数据库中,例如从生产环境迁移到测试环境。Redis提供了move、dump+restore和migrate三种不同的方式来实现键的迁移。视频讲解如下:


一、 使用move命令实现数据的内部迁移


下面通过具体的示例来演示move命令的使用。

(1)查看move命令的帮助信息。

127.0.0.1:6379> help move
MOVE key db
summary: Move a key to another database
since: 1.0.0
group: generic

(2)使用move命令移动键。

127.0.0.1:6379> move mykey1 3
(integer) 1

(3)切换到3号数据库中查看键。

127.0.0.1:6379> select 3
OK
127.0.0.1:6379[3]> keys *
1) "mykey1"
127.0.0.1:6379[3]>


二、 使用dump+restore实现实例间数据的迁移


dump+restore可以实现在不同的Redis实例之间进行数据迁移的功能,整个迁移的过程分为两步:首先,在源Redis数据库实例上,dump命令会采用的是RDB格式将键值序列化;其次,在目标Redis数据库实例上,restore命令将dump命令生成的键值执行反序列化进行复原。下面通过具体的示例来进行演示

(1)通过help命令查看dump命令的帮助信息。

127.0.0.1:6379> help dump
DUMP key
summary: Return a serialized version of the value stored at 
the specified key.
since: 2.6.0
group: generic

(2)在源Redis数据库实例上插入数据,并使用dump命令进行持久化。

127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> dump hello
"x00x05worldtx00xc9#mHx84/x11s"

(3)通过help命令查看restore命令的帮助信息。

127.0.0.1:6379> help restore
RESTORE key ttl serialized-value [REPLACE] [ABSTTL] [IDLETIME seconds] [FREQ frequency]
summary: Create a key using the provided serialized value, 
previously obtained using DUMP.
since: 2.6.0
group: generic
# 其中:ttl参数代表数据的过期时间。当ttl为0时,表示数据永远不过期。

(4)在目标Redis数据库实例上使用restore命令恢复数据。

127.0.0.1:6379> restore hello 0 "x00x05worldtx00xc9#mHx84/x11s"
OK
127.0.0.1:6379> get hello
"world"


三、 使用migrate实现实例间数据的迁移


migrate命令也可以用于在Redis数据库实例之间进行数据迁移的。实际上migrate命令就是将dump、restore、del三个命令进行组合,从而简化了操作流程。migrate命令具有原子性,并且从Redis3.0.6版本开始支持迁移多个键的功能,有效地提高了迁移效率。下面通过一个具体的示例来演示migrate命令的使用。

(1)使用help命令查看migrate命令的帮助信息。

127.0.0.1:6379> help migrate
MIGRATE host port key| destination-db timeout [COPY] [REPLACE] [AUTH password] [AUTH2 username password] [KEYS key]
summary: Atomically transfer a key from a Redis instance to another one.
since: 2.6.0
group: generic

(2)从源Redis数据库实例上迁移键到目标Redis数据库实例。

127.0.0.1:6379> migrate 192.168.79.12 6379 hello 0 1000
OK

(3)在目标Redis数据库实例上检查数据是否迁移成功。

127.0.0.1:6379> keys *
1) "hello"
127.0.0.1:6379> get hello
"world"

(4)在源Redis数据库实例上再次执行migrate命令。

127.0.0.1:6379> migrate 192.168.79.12 6379 hello 0 1000
NOKEY
# 提示:migrate命令执行完成后,会删除源Redis数据库实例上键。


相关文章
|
2月前
|
存储 消息中间件 Kafka
Confluent 首席架构师万字剖析 Apache Fluss(一):核心概念
Apache Fluss是由阿里巴巴与Ververica合作开发的Flink表存储引擎,旨在提供低延迟、高效率的实时数据存储与变更日志支持。其采用TabletServer与CoordinatorServer架构,结合RocksDB和列式存储,实现主键表与日志表的统一管理,并通过客户端抽象整合湖仓历史数据,弥补Paimon在实时场景下的性能短板。
434 22
Confluent 首席架构师万字剖析 Apache Fluss(一):核心概念
|
1月前
|
分布式计算 监控 API
DMS Airflow:企业级数据工作流编排平台的专业实践
DMS Airflow 是基于 Apache Airflow 构建的企业级数据工作流编排平台,通过深度集成阿里云 DMS(Data Management Service)系统的各项能力,为数据团队提供了强大的工作流调度、监控和管理能力。本文将从 Airflow 的高级编排能力、DMS 集成的特殊能力,以及 DMS Airflow 的使用示例三个方面,全面介绍 DMS Airflow 的技术架构与实践应用。
|
2月前
|
人工智能 开发框架 安全
浅谈 Agent 开发工具链演进历程
模型带来了意识和自主性,但在输出结果的确定性和一致性上降低了。无论是基础大模型厂商,还是提供开发工具链和运行保障的厂家,本质都是希望提升输出的可靠性,只是不同的团队基因和行业判断,提供了不同的实现路径。本文按四个阶段,通过串联一些知名的开发工具,来回顾 Agent 开发工具链的演进历程。
450 49
|
1月前
|
存储 人工智能 监控
视频也能“验真”?高维数据获边缘隐藏防篡改专利,为每帧内容穿上“隐形防护服”(第2期)
合肥高维数据获“视频防篡改水印”专利,创新性将水印嵌入边缘像素,利用人眼视觉特性与感知哈希算法,实现隐蔽、鲁棒的内容保护,为司法取证、新闻媒体、在线教育等提供真伪验证,构筑可信视频生态防线。
131 11
视频也能“验真”?高维数据获边缘隐藏防篡改专利,为每帧内容穿上“隐形防护服”(第2期)
|
1月前
|
并行计算 负载均衡 关系型数据库
超长序列并行之Ulysses + Ring-Attention技术原理与实现
本文介绍大模型长序列训练中的显存优化技术,重点解析Ulysses与Ring-Attention的融合方案。通过序列并行降低显存占用,结合zigzag切分与padding_free适配,实现高效多模态训练,在3B模型上显存从75GB降至18GB,显著提升长序列训练可行性。
755 45
|
2月前
|
人工智能 文字识别 并行计算
为什么别人用 DevPod 秒启 DeepSeek-OCR,你还在装环境?
DevPod 60秒极速启动,一键运行DeepSeek OCR大模型。告别环境配置难题,云端开箱即用,支持GPU加速、VSCode/Jupyter交互开发,重塑AI原生高效工作流。
648 35
|
28天前
|
Kubernetes 关系型数据库 MySQL
【赵渝强老师】使用Helm简化Kubernetes(K8s)应用的部署和管理
Helm是Kubernetes的应用包管理工具,可简化应用部署与管理。通过Chart模板定义应用配置,支持快速安装、升级和卸载。本文介绍Helm核心概念、部署方法,并实战演示部署MySQL和创建自定义Nginx Chart。
185 3
|
2月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
202 6