方式一:使用redis-cli迁移数据
keys 命令
查找所有符合给定模式 pattern 的 key 。
KEYS * 匹配数据库中所有 key 。
KEYS h?llo 匹配 hello , hallo 和 hxllo 等。
KEYS h*llo 匹配 hllo 和 heeeeello 等。
KEYS h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo 。
迁移代码(将)192.168.31.216服务器上redis的0数据库的所有数据迁移到执行命令的服务器上redis的0数据库
:
新建文件
vim redis-mv.sh 并添加下面内容
redis-cli -h 192.168.31.216 -p 6379 -n 0 keys "*" | while read key
do
redis-cli -h 192.168.31.216 -p 6379 -n 0 --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h 127.0.0.1 -p 6379 -n 0 -x restore $key 0
echo "migrate key $key"
done
赋予文件相应的权限,并执行该文件
chmod 777 redis-mv.sh
./redis-mv.sh
执行输出图
迁移前数据库值
迁移后
迁移指定前缀keys(test开头的所有key)
redis-cli -h 192.168.31.216 -p 6379 -n 0 keys test* | while read key
do
redis-cli -h 192.168.31.216 -p 6379 -n 0 --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h 127.0.0.1 -p 6379 -n 0 -x restore $key 0
echo "migrate key $key"
done
```其余只要符合keys 命令的语法均可实现。