侧边栏壁纸
  • 累计撰写 176 篇文章
  • 累计创建 87 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

redis集群查询key和批量删除脚本

Z先森
2021-09-08 / 0 评论 / 0 点赞 / 16 阅读 / 0 字 / 正在检测是否收录...

从redis集群查key比较麻烦,要到每个master上面都查一遍,删除的时候也比较麻烦,xargs的方式并不适合集群的批量删除key,所以写了如下脚本,方便批量查询和删除key:

#!/bin/bash
# 查询 sh redis.sh keys "*_courseList_*"
# 删除 sh redis.sh del "*_courseList_*"
cluster="192.168.50.199:7000,192.168.50.199:7001,192.168.50.199:7002,192.168.50.199:7003,192.168.50.199:7004,192.168.50.199:7005"
PW=""

REDIS_RUN(){
        COMMAND=$1
        KEY="$2"
        for node in $(echo $cluster|sed 's/,/ /g');
        do
                ip=$(echo $node|awk -F\: '{print $1}')
                port=$(echo $node|awk -F\: '{print $2}')
                echo $ip $port $COMMAND $KEY
                redis-cli -h $ip -p $port -a "$PW" -c $COMMAND "$KEY" 2>/dev/null
        done
}

if [[ x$1 == xkeys ]];then
REDIS_RUN "keys" "$2"
fi

if [[ x$1 == xdel ]];then
REDIS_RUN "keys" "$2" |egrep -v " keys |^$"|sort|uniq|while read line;do REDIS_RUN "del" "$line";done
fi

0

评论区