Redis数据导入导出以及数据迁移的4种方法详解

2020-02-07 10:01:58于海丽

目前我发现,淘宝的镜像已经出现 bad response Not Found 404 了,被告知镜像维护站点已迁往 Ruby China 镜像。

# 替换镜像地址
gem sources --add http://gems.ruby-china.org/ --remove http://rubygems.org/
# 确认镜像地址是否替换成功
gem sources -l
# 替换成功后再安装 redis-dump
gem install redis-dump -V

安装完成后,就可以使用 redis-dump 工具进行数据的导入导出了!

# redis-dump 导出
redis-dump -u :password@源RedisIp:6379 > 源Redis数据文件.json
# redis-load 导入
cat 源Redis数据文件.json | redis-load -u :password@目标RedisIp:6379

cat 源Redis数据文件.json | redis-load -u :password@目标RedisIp:6379

Linux 系统或者 Window 系统也都类似,安装 redis-dump 工具完成后直接使用 redis-dump 导出,redis-load 导入即可完成数据的备份与迁移。

redis-dump 工具很强大,建议大家到官网上多看看它的官方文档。

4、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 实例,数据就迁移完成了。 重启完成后可以验证一下数据是否成功的复制了。

更多关于Redis数据导入导出以及数据迁移的方法请查看下面的相关链接