redis 跨机迁移 db key 及ttl

本文介绍了一个bash脚本,用于从Redisdb0复制数据到192.168.81db5,包括处理ttl值和使用MIGRATE命令进行迁移。脚本详细解释了如何处理不同ttl情况并可能需要两次执行以确保完整迁移。
摘要由CSDN通过智能技术生成

需求:

本redis机db0 数据复制 至 192.168.81 db5

#!/bin/bash
Db0keys=`/usr/local/redis/redis-cli -n 0 keys "*"`
for i in $Db0keys
do 
        echo $i
        ttl=`/usr/local/redis/redis-cli -n 0  ttl "$i"|awk '{print $NF}'`
        if [ $ttl == "-2" ];then
                echo "$i $ttl "
                echo "$i $ttl " >>/tmp/redisk.log
        elif [ $ttl == "-1" ];then
                echo "$i $ttl "
                echo "$i $ttl " >>/tmp/redisk.log
        else
                echo "$i $ttl "
                echo "$i $ttl " >>/tmp/redisk.log
                /usr/local/redis/redis-cli -n 0 MIGRATE 192.168.0.81 6379 "" 5 5000 copy keys $i
                /usr/local/redis/redis-cli -h 192.168.0.81 -p 6379 -n 5 expire $i $ttl
        fi
done

说明:

复制key 与 值 至目标主机的db 5

/usr/local/redis/redis-cli -n 0 MIGRATE 192.168.0.81 6379 “” 5 5000 copy keys keyname

-n 0db 0
“”密码为空 ,有就写
MIGRATE数据迁移工具
6379端口
copy复制,可以为空,空值为move,本机会删除相应的key
keynamekey
5目标 db 5
5000超时时间

修改ttl值
/usr/local/redis/redis-cli -h 192.168.0.81 -p 6379 -n 5 expire $i $ttl

-h 192.168.0.81 -p 6379 -n 5目标IP 端口 db
expire修改过期时间

注:
建议执行两遍,把上一次执行期间的发生的写入补上

--------------end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值