Redis数据迁移

本文介绍两种Redis数据迁移方法:直接使用MIGRATE命令和通过DUMP/RESTORE进行备份恢复。MIGRATE命令简单快捷,但低版本Redis不支持COPY选项;DUMP/RESTORE方法更为安全,适用于数据备份场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 直接用迁移命令MIGRATE做数据迁移

将src Redis上的三个key(x,y,z)的全部内容,迁移到dst Redis(10.20.30.40)

(1)登录src Redis的cli

(2)执行命令

MIGRATE 10.20.30.40 6379 "" 0 5000 COPY KEYS x y z

命令说明:

  • 10.20.30.40:目的Redis服务器地址
  • 0 5000:timeout时间范围(毫秒)
  • COPY:可以去掉,若去掉,则迁移key后,就会在本地将key删除
  • x y z:要迁移的三个key

注意timeout并不是说数据迁移必须在这个时间范围内(5s)完成,而是说迁移过程如果有中断,中断不能超过5s。

MIGRATE实例

(1)启动dst Redis

root@ubuntu:/home//tmp/redis-3.2.9# src/redis-server --protect-mode no

(2)启动src Redis

root@ubuntu:/home//tmp/redis-3.2.9# src/redis-server

(3)在src Redis中,添加几个key

127.0.0.1:6379> set x1 123
OK
127.0.0.1:6379> sadd x2 1 2 3
(integer) 3
127.0.0.1:6379> hmset x3 key1 value1 key2 value2

(4)在src Redis上执行如下命令,迁移到dst Redis

127.0.0.1:6379> MIGRATE 10.20.30.40 6379 "" 0 5000 COPY KEYS x1 x2 x3
OK

2. 先做backup,再restore

通过Redis的MIGRATE命令说明可以看到,MIGRATE的实现,是在Redis数据源上,做DUMP+DEL,然后到目标Redis,做RESTORE。
我们也可以参考这种思路,将src redis上的key先DUMP到本地磁盘,再将其移动到dst redis,然后用RESTORE重建。

backup/restore实例

(1)启动dst Redis

root@ubuntu:/home//tmp/redis-3.2.9# src/redis-server --protect-mode no

(2)启动src Redis

root@ubuntu:/home//tmp/redis-3.2.9# src/redis-server

(3)在src Redis,对某个key做backup。这里将key为user:1000的HASH结构backup为文件user_1000

root@ubuntu:/home/tmp# redis-3.2.9/src/redis-cli --raw dump user:1000 | head -c-1 > user_1000

注意,这里head -c-1,是将DUMP指令的输出的数据,去掉最后一个字节,然后保存为文件user_1000

(4)将文件user_1000拷贝到dst Redis,再导入,并将key设置为user:1000:new

root@ubuntu:/home/tmp# cat user_1000 | redis-3.2.9/src/redis-cli -x restore user:1000:new 0

最后一个参数0,是到期时间。如果设置为0,则表示不为该操作(restore)设置到期时间。

总结

直接使用MIGRATE做数据迁移,较为简单,但低版本的Redis,MIGRATE不支持COPY,就是说MIGRATE后会在src redis上删除数据。用DUMP/RESTORE做数据迁移,虽然耗时一些,但能做好backup,src redis上数据不会被删除,比较安全。

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值