珍娱客>科技>从redis中按照Key前缀导出数据,导入到另一个Redis中>正文

从redis中按照Key前缀导出数据,导入到另一个Redis中

历史2022-05-140 次阅读

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 '

从redis中按照Key前缀导出数据,导入到另一个Redis中

如果您喜欢本文,就请动动您的发财手为本文点赞评论转发,让我们一起学习更多运维相关知识,最后请记得关注我。