目 录CONTENT

文章目录

redis-dump导出redis库数据到目标redis数据库脚本

Seven
2023-02-24 / 0 评论 / 0 点赞 / 345 阅读 / 2672 字 / 正在检测是否收录...

根剧业务有个从redis合并数据的需求
写了一个脚本进行数据合并,可以通过外部传参数进来。

#!/bin/bash
srtdb=srtdb
enddb=enddb
date=$(date +%Y-%m-%d-%H-%M)
filename=db_${date}.json
dir=~/
redis-dump -v
if [ $? -eq 0 ]; then
        echo 'redis-dump 已经安装'
else
        echo 'redis数据拉取软件未正确安装,请检查'
        exit;
fi

#echo '请输入要拉取数据库编号:'
while true; do
#       read srtdb
        read -p "请输入要拉取数据库编号: " strdb
        if [[ "$strdb" =~ ^[0-9]+$ ]]; then
                echo "正在下载${strdb}数据库文件"
                redis-dump -u :'password'@127.0.0.1:6379 -d $strdb > ${dir}${filename}
                if [ $? -eq 0 ]; then
                        echo "数据文件已经存到${dir}${filename}"
                else
                        echo '数据文件存取失败'
                        exit;
                fi
                break
        else
                echo "错误:你输入的不是整数,请重新输入。"
        fi
done

echo '请输入上传目标数据库编号:'
while true; do
        read enddb
        if [[ "$enddb" =~ ^[0-9]+$ ]]; then
                echo '正在修改上传数据文件'
                sed -i "s/${strdb}/${enddb}/" ${dir}${filename}
                echo "正在上传文件至目标${enddb}数据库"
                < ${dir}${filename} redis-load -n -u :'password'@127.0.0.1:6379
                if [ $? -eq 0 ]; then
                        echo "数据文件已经上传到目标${enddb}数据库"
                else
                        echo '数据文件上传失败'
                        exit;
                fi
                break
        else
                echo "错误:你输入的不是整数,请重新输入。"
        fi
done
0

评论区