ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

redis key迁移、复制

2022-06-15 10:31:37  阅读:193  来源: 互联网

标签:src dest redis db 复制 key port


参考:

https://www.codeleading.com/article/17355713942/

 

#复制一个库的全部key

redis-all-key.sh

#!/bin/bash
src_ip=127.0.0.1
src_port=8090
src_db=14
src_pw='1234'
 
dest_ip=127.0.0.1
dest_port=8090
dest_db=15
desc_pw='1234'
 
redis-cli -h $src_ip -p $src_port  -a $src_pw  -n $src_db keys "*" | while read key
do
    redis-cli -h $src_ip -p $src_port -a $src_pw  -n $src_db --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h $dest_ip -p $dest_port -a $desc_pw -n $dest_db -x restore $key 0
    echo "migrate key $key"
done

#复制一个库的部分key

迁移源redis 11库名称为“EXIST_IP”的key数据

#!/bin/bash
src_ip=122.226.xx.xxx
src_port=6379
src_db=0
src_pw='iMxxxx'
dest_ip=47.241.xx.xxx
dest_port=6379
dest_db=11
desc_pw='0*7xxxxx'
#要遍历的key
k=(EXIST_IP)
for loop in ${k[*]}
do
    redis-cli -h $src_ip -p $src_port -a $src_pw -n $src_db --raw dump $loop | perl -pe 'chomp if eof' | redis-cli -h $dest_ip -p $dest_port -a $desc_pw -n $dest_db -x restore $loop 0
    echo "The value is: $loop"
done

#只复制一个key

redis-cli -h 127.0.0.1 -p 8090 -a 1234 -n 14 --raw dump test | perl -pe 'chomp if eof' | redis-cli -h 127.0.0.1 -p 8090 -a 1234 -n 15 -x restore test 0

-h hostip,

-p 端口,

-a 密码,

-n db库,

--no-raw选项是要求命令的返回结果必须是原始的格式,

--raw恰恰相反,返回格式化后的结果,

-x 选项代表从标准输入(stdin)读取数据

perl -p(perl 命令可自行百度) 使 Perl 隐式地循环遍历指定的文件,同时打印所有的行。自动循环+自动输出,相当于 while(<>) { 脚本; print; }

标签:src,dest,redis,db,复制,key,port
来源: https://www.cnblogs.com/xiaoyou2018/p/16377496.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有