#!/bin/bash
#redis数据迁移脚本,将其他库的数据迁移到0号库
ip='localhost'
port=6379
dest_db=0
for ((db=1;db<16;db++))
do
redis-cli -h $ip -p $port -n $db keys "*" | while read key
do
if [ -n "$key" ];
then
redis-cli -h $ip -p $port -n $db ttl $key | while read k
do
if [ $k -gt -1 ];
then
redis-cli -h $ip -p $port -n $db --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h $ip -p $port -n $dest_db -x restore $key $((k*1000))
echo "[$(date "+%Y-%m-%d %H:%M:%S")] migrate key $key from db$db to db$dest_db ttl is $k" >> migrate-redis.log
else
redis-cli -h $ip -p $port -n $db --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h $ip -p $port -n $dest_db -x restore $key 0
echo "[$(date "+%Y-%m-%d %H:%M:%S")] migrate key $key from db$db to db$dest_db" >> migrate-redis.log
fi
done
fi
done
done
redis 数据迁移 restore
最新推荐文章于 2025-06-13 15:35:07 发布