批量删除redis cluster的key

先进入redis的docker 容器中 docker exec -it orbit-redis-shard-01 sh


在容器中通过命令把需要删除的key从redis中导出到一个txt文件中(注意:如下的命令需要在redis的集群中每个节点都导出一份才包含所有的keys)

redis-cli -h 15.36.152.69 -p 6779 -a 'redis!123456' keys
'redisstructstepredis*' > redisstructstepredis6779.txt


然后修改del_redis.sh 把上一条命令导出的redisstructstepredis6779.txt 写入脚本中

然后执行./del_redis.sh

 

如下是del_redis.sh的内容

 

#!/bin/sh
redis_list='15.36.152.69:6479 15.36.152.69:6579 15.36.152.69:6679 15.36.152.69:6779'
password="redis!123456"

for info in $redis_list
do
echo "start exec:$info"
ip=`echo $info | cut -d : -f 1`
port=`echo $info | cut -d : -f 2`
cat redisstructstepredis6779.txt |xargs -t -n1 redis-cli -h $ip -p $port -a $password -c del
done
echo "exec success"

 

 

 

 

 

注意:有时候如果redisstructstepredis6779.txt不是自动生成的而是在windows上编辑的就会有windows的换行符导致错误

需要用如下的命令在vim中处理

 

 

 

 

其实你可以在vim中进行文件格式的切换:

方法一:

:e ++ff=dos
:w ++ff=unix
:e!

方法B:

:e ++ff=dos
:set ff=unix
:w

 

posted @ 2022-08-26 18:30  kuroniko  阅读(582)  评论(0编辑  收藏  举报