批量删除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