废话不多说,直接上脚本
#!/bin/bash
redis-cli -h host1 -p 63791 -n 0 keys "*" | while read key
do
redis-cli -h host1 -p 63791 -n 0 --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h host2 -p 6379 -n 0 -x restore $key 0
echo "migrate key $key"
done
使用redis-cli连接到host1服务器,n代表database,执行keys "*"命令获取所有键名。
使用while read key循环读取每个键名。
对于每个键名,使用redis-cli连接到host1服务器,执行dump命令将键值序列化输出。
使用perl -pe 'chomp if eof'命令处理输出结果,去除换行符。
使用redis-cli连接到host2服务器,执行restore命令将键值恢复到host2服务器,ttl=0代表永不过期。
输出迁移的键名。?