从redis中按照Key前缀导出数据,导入到另一个Redis中
1、使用redis的keys指令读取指定前缀的所有key,然后使用get指令读取所有内容,输出到控制台
cat redis_
#!/bin/bash
# author: cjm
REDIS_KEY_PATTERN="NETWORK*"
HOST='192.168.1.10'
PASSWD='123456'
for key in $(redis-cli -h $HOST -p 6379 -a $PASSWD keys "$REDIS_KEY_PATTERN")
do
type=$(redis-cli -h $HOST -p 6379 -a $PASSWD type $key)
if [ $type = "list" ]
then
printf "$key => \n$(redis-cli -h $HOST -p 6379 -a $PASSWD lrange $key 0 -1 | sed 's/^/ /')\n"
elif [ $type = "hash" ]
then
printf "$key => \n$(redis-cli -h $HOST -p 6379 -a $PASSWD hgetall $key | sed 's/^/ /')\n"
else
printf "$key => $(redis-cli -h $HOST -p 6379 -a $PASSWD get $key)\n"
fi
done
source redis_ > ript
2、使用 awk, xargs 读取文本文件内容, 导入到新的 redis 服务器中。
awk -F"=>" '{gsub("\"", "\\\"", $2) ;print $1 $2}' ript | xargs -L1 bash -c 'redis-cli -h 192.168.1.20 -a 123456 set $0 $1 '
如果您喜欢本文,就请动动您的发财手为本文点赞评论转发,让我们一起学习更多运维相关知识,最后请记得关注我。
热点精选
网易云音乐分几个等级?有什么特权?
科技01-08
拼多多助力互助群2022年最新进入方法
科技02-08
腾讯视频账号可以几个人同时登录?
科技01-09
蚂蚁能看得见人类吗?
科技01-23
QQ冻结有必要非要求人脸识别吗
科技01-19