【赵渝强老师】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数据库实例上键。


相关文章
|
9月前
|
SQL 运维 关系型数据库
【赵渝强老师】OceanBase的连接与路由管理
ODP(OceanBase Database Proxy)是OceanBase数据库专用的连接路由组件,负责将客户端SQL请求智能路由至最佳OBServer节点,具备高性能转发、高可用、易运维等特性,支持读写分离与多副本负载均衡,是分布式数据库访问的核心代理服务。
508 0
|
7月前
|
弹性计算 Cloud Native 关系型数据库
方案实践 | 基于 DTS 实现自建 MySQL 数据迁移至 PolarDB-X
本方案介绍如何通过阿里云PolarDB-X,实现MySQL向云原生分布式数据库的平滑迁移。涵盖资源部署、账号登录、数据同步验证(全量/增量)、主可用区切换及GAP锁对比测试,显著提升扩展性、高可用性与并发性能。
|
弹性计算 容灾 关系型数据库
阿里云服务器ECS中扩容云盘后磁盘容量没有增加的解决方法
ECS控制台操作扩容只是扩大云盘的存储容量,不会扩容ECS实例的文件系统。还需要登录实例,然后进行扩容文件系统的操作。
2869 0
阿里云服务器ECS中扩容云盘后磁盘容量没有增加的解决方法
|
9月前
|
Kubernetes 关系型数据库 MySQL
【赵渝强老师】使用Helm简化Kubernetes(K8s)应用的部署和管理
Helm是Kubernetes的应用包管理工具,可简化应用部署与管理。通过Chart模板定义应用配置,支持快速安装、升级和卸载。本文介绍Helm核心概念、部署方法,并实战演示部署MySQL和创建自定义Nginx Chart。
782 3
|
NoSQL Redis UED
redis数据迁移、数据导出和导入用什么工具
用户体验好的客户端,我建议使用yunedit-redis来做数据迁移,因为它支持图形化,还支持多种导出方式。 yunedit-redis它支持全库导出,也支持选择部分key导出,还支持用*号表达式导出。
|
10月前
|
存储 NoSQL 前端开发
【赵渝强老师】MongoDB的分布式存储架构
MongoDB分片通过将数据分布到多台服务器,实现海量数据的高效存储与读写。其架构包含路由、配置服务器和分片服务器,支持水平扩展,结合复制集保障高可用性,适用于大规模生产环境。
665 1
|
10月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
905 6
|
10月前
|
存储 缓存 关系型数据库
【赵渝强老师】PostgreSQL的内存结构
PostgreSQL内存结构分为本地内存与共享内存。本地内存包括work_mem、maintenance_work_mem和temp_buffers,供各会话独立使用;共享内存如shared_buffers、wal_buffers和effective_cache_size,则由所有进程共用,用于缓存数据、WAL日志及优化查询性能。
400 0
|
9月前
|
消息中间件 Kubernetes Cloud Native
Go语言全栈实战指南:微服务架构+云原生部署,打造高并发系统
系统讲解Go语言全栈开发,从Web框架到微服务架构,涵盖云原生部署、Kubernetes编排等企业级技术。适合后端工程师转型和架构师学习分布式系统设计,通过实战项目掌握高并发场景的开发与优化。
|
9月前
|
负载均衡 安全 关系型数据库
【赵渝强老师】MySQL集群解决方案
MySQL主从与主主复制集群可实现数据同步、读写分离及高可用。主从复制支持一主多从,提升性能与安全;主主复制则互为备份,双向同步,适用于高并发场景,增强系统可靠性与扩展性。
246 4