#!/bin/bash redis_comm=redis-cli #从当前节点查询集群信息, 查询所有master节点 生成数组 redis_list=$($redis_comm -h 192.168.11.191 -p 6379 cluster nodes | grep master | awk '{print $2}' | awk -F['@'] '{print $1}') #用临时文件也行 #$redis_comm -p 9001 cluster nodes | grep master | awk '{print $2}' | awk -F['@'] '{print $1}' > tmp #i=0 #while read line #do # redis_list[i]=$line # i=$(($i+1)) #done < ./tmp read -p "请输入要删除的key格式: " searchkey read -p "是否显示查询的所有key(Y/N): " searchFlag if [ $searchFlag = "Y" ] || [ $searchFlag = "y" ]; then for info in ${redis_list[@]} do echo "开始查询: $info" ip=`echo $info | cut -d : -f 1` port=`echo $info | cut -d : -f 2` $redis_comm -c -h $ip -p $port keys "$searchkey" done fi read -p "确定删除(Y/N): " runCommand if [ $runCommand = "Y" ] || [ $runCommand = "y" ]; then for info in ${redis_list[@]} do echo "开始执行: $info" ip=`echo $info | cut -d : -f 1` port=`echo $info | cut -d : -f 2` $redis_comm -c -h $ip -p $port keys "$searchkey" | xargs -i $redis_comm -h $ip -p $port del {} done echo "完成" fi