Redis利用aof或rdb进行数据迁移

AndyYang| 阅读:689 发表时间:2021-11-10 09:14:43 redis
摘要:redis数据迁移,常用的方法就是利用redis保存的文件进行迁移,分别是aof格式和rdb格式。
1、aof 导入方式。
第一步先让源 Redis 生成 AOF 数据文件。

# 源实例开启 aof 功能,将在 dir 目录下生成 appendonly.aof 文件
redis-cli -h 源RedisIP -a password config set appendonly yes
dir 目录,可以通过 config get dir 目录获得。

config get dir
# 比如我的 Mac 上执行上面的命令后,返回如下内容
1) "dir"
2) "/usr/local/var/db/redis"
通过上面的命令,我们可以看到我本地的 dir 目录是:/usr/local/var/db/redis。

现在我们来做第二步操作,让目标 Redis 实例导入 aof 数据。

# 将 appendonly.aof 文件放在当前路径下
redis-cli -h 目标RedisIp -a password --pipe < appendonly.aof
# 源实例关闭 aof 功能
redis-cli -h 源RedisIp -a password config set appendonly no
上面的第一个命令,执行后,如果出现以下内容,则表示导入 aof 数据成功。

All data transferred. Waiting for the last reply...
Last reply received from server.
errors: 0, replies: 5
我这里是测试,数据比较少,所以提示有 5 个导入成功了。

AOF 的缺点也很明显,就是速度慢,并且如果内容多的话,文件也比较大。而且开启 AOF 后,QPS 会比 RDB 模式写的 QPS 低。还有就是 AOF 是一个定时任务,可能会出现数据丢失的情况。


2、rdb 文件迁移
redis-dump 麻烦就麻烦在需要进行安装,如果我的 Redis 已经有备份机制,比如有 rdb 文件,那么我们直接迁移 rdb 文件就可以达到同样的目的。

首先,我们可以先关闭源 Redis 实例的 aof 功能。如果不关闭 aof,Redis 默认用 aof 文件来恢复数据。

# 源实例关闭 aof 功能
redis-cli -h 源RedisIp -a password config set appendonly no
然后使用 save 命令把数据固化到 rdb 文件中。

# 固化数据到 RDB 文件
save
save 完成后,还是通过 config get dir 命令获得保存的 RDB 数据文件位置。

接下来,我们需要杀死 redis 进程。杀掉当前 redis 的进程,否则下一步的复制 rdb 文件,rdb 处于打开的状态,复制的文件,会占用同样的句柄。

kill -9 redis
# 或者
pkill -9 redis
# 或者手段关闭 Redis 服务
然后复制源 redis 的 rdb 文件到目标 Redis 的 dir 数据目录,名字为你要迁移的 redis 的 rdb 文件名。

复制完成后,重启目标 Redis 实例,数据就迁移完成了。 重启完成后可以验证一下数据是否成功的复制了。
摘自:https://www.jb51.net/article/179745.htm
如果您觉得好,可以打赏作者:
如果您觉得累了,是否想看点美女养养眼:猛戳>>朋友帮
如果您觉得皮了,是否想来点神吐槽:猛戳>>iPhone查询中

已有2条评论

昵称:
邮箱:

  • 最新评论

叶蛾2022-01-05 16:20:46
虎啊虎啊
62021-11-10 11:16:50
直接复制,不好吧
iPhone查询中 - bbs.ipcxz.com 朋友帮 - www.pengyb.cn iPhone查询中 - bbs.ipcxz.com
反馈
微信订阅号