redis数据迁移

一:实现功能

通过shell脚本实现具体两个redis里的数据的拷贝

 

二:限制

1. 两个redis里的相同名称的存储结构会被跳过

如:如果两个redis里有相同的哈希表runoobkey,在执行脚本的时候会出现下面错误:

(error) BUSYKEY Target key name already exists.

2. 根据1的描述,不能实现类似将redis1的哈希表的key-value键值对添加到redis2的相同的哈希表中

 

三:脚本文件

#!/bin/bash
 
#redis 源ip
src_ip=192.168.110.4
#redis 源port
src_port=6379
#redis 源库
src_db=0
#redis 源密码
src_pw=123
 
#redis 目的ip
dest_ip=192.168.110.6
#redis 目的port
dest_port=6379
#redis 目的
dest_db=0
#redis 目的密码
dest_pw=456

redis-cli -h $src_ip -p $src_port -a $src_pw -n $src_db keys "runoob*" | while read key
do
    redis-cli -h $src_ip -p $src_port -a $src_pw -n $src_db --raw dump $key |  head -c-1 | redis-cli -h $dest_ip -p $dest_port -a $dest_pw -n $dest_db -x restore $key 0
	echo "migrate key $key"
done

其中keys "runoob*"表示所有前缀是runoob的键的名称。

当前脚本的功能是将一个redis里指定数据库的所有前缀是runoob的键的数据拷贝到另一个redis的指定数据库

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值