Redis迁移数据到指定库

使用场景:将redis-01主机的redis db0这个库数据 ,迁移到 redis-02主机的redis db1库中去 (redis-02主机的redis db1 为空库),即特定库到特定库的数据迁移。
使用工具: redis-dump 和 redis-load

(1)、安装redis-dump和redis-load工具
安装rvm
curl -L get.rvm.io | bash -s stable
报错解决办法:
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -

安装rvm
curl -L get.rvm.io | bash -s stable

查看rvm库中的ruby版本
source /usr/local/rvm/scripts/rvm
rvm list known

安装ruby 版本为 2.7.0
echo "export rvm_max_time_flag=20" >> ~/.rvmrc
source /etc/profile
rvm install 2.7.0
查看已安装的ruby版本
ruby –v

卸载ruby
rvm remove 2.7.0

当有多个版本的ruby, 使用新版本, 例如使用ruby 2.7.2 命令为
rvm use 2.7.2

查看gem sources , 若不存在rubygems.org 官方sources 使用命令添加
gem sources
gem sources -a https://rubygems.org

安装redis-dump 和 redis-load 工具
gem install redis-dump -V
gem install redis-load -V

(2)、redis导出数据,指定db库
1、使用redis-dump把数据备份出来, 可以备份特定库(例如db0),也可以备份整个redis数据库(db0 – db15)
redis-dump -u 127.0.0.1:6379 -a password -d 0 > redis_0.json

2 、使用redis-load导入数据
将源备份出来的db0库数据 导入到目标主机 db1库中去,在导入操作之前, 编辑 redis_0.json , 将数据库 db:0 全部修改为 db:1
比如对导出的db0库的json文件中的 db:0 批量修改成 db:1
Redis迁移数据到指定库
参考命令:
操作命令可以参考为:
sed -r 's/"db":[0-9]/"db":1/g' redis_0.json > redis_1.json
说明 sed -r 在脚本中使用正则表达式。

批注:
awk -F ":" '{print $2}' redis_0.json | cut -d ',' -f 1 命令可以截取db0库的编号0 那一列

使用redis-load工具导入redis_1.json文件数据到目标redis db1 数据中去:
cat redis_1.json | redis-load -u :password@host:6379 -d 1

相关新闻

联系我们

全国服务热线

400-033-9553

电子邮件:admin@example.com
工作时间:09:00-17:00 周一至周五

在线客服
关注微信
关注微信
分享本页
返回顶部