首页 > 其他 > 详细

redis数据修复记录-1

时间:2020-06-18 22:56:11      阅读:80      评论:0      收藏:0      [点我收藏+]

 

由于某种原因,需要把A环境的某个db的key同步到B环境,同步规则如下:

1、如果目标端不存在这个key,则进行从A导入到B环境。

2、如果目标端已存在同名的key,则将对应的key记录到文件。

PS: 相关IP等 已脱敏处理。

#!/bin/bash
src_ip=192.168.1.1
src_port=6379
src_db=1


dest_ip=192.168.1.2
dest_port=6379
dest_db=1

 
redis-cli -h $src_ip -p $src_port -n $src_db keys \* > ${src_ip}_${src_port}_db1_keys.txt

for loop in `cat ${src_ip}_${src_port}_db1_keys.txt`
do
    check_exists=$(redis-cli -h $dest_ip -p $dest_port -n $dest_db EXISTS $loop)
    if [[ $check_exists -eq 1 ]];then
        echo $loop >> ${src_ip}_${src_port}_db1_exists_keys.txt
        continue
    else
        redis-cli -h $src_ip -p $src_port -n $src_db --raw dump $loop | perl -pe ‘chomp if eof‘ | redis-cli -h $dest_ip -p $dest_port  -n $dest_db -x restore $loop 0
        check_exists=$(redis-cli -h $dest_ip -p $dest_port -n $dest_db EXISTS $loop)
        if [[ $check_exists -eq 1 ]];then
            echo "success insert $loop from $src_ip:$src_port to $dest_ip:$dest_port" >> ok_insert_from_${src_ip}_${src_port}.log
        else
            echo "faild insert $loop from $src_ip:$src_port to $dest_ip:$dest_port" >> faild_insert_from_${src_ip}_${src_port}.log
        fi
    fi
done

  

 

redis数据修复记录-1

原文:https://www.cnblogs.com/imdba/p/13160511.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!