分享一个删除redis中指定key模式的数据的shell脚本
有很多场景,我们都需要删除redis中某些具有相似特征的key,即使是线上环境也是。如果key数量很小容易处理,如果这些key很多很多,必须通过scan命令循环扫描一一删除,如果直接执行keys命令会堵死redis服务。下面这个脚本就是通过循环扫码key再删除,直至结束。
redis-del-keys.sh
#!/bin/bash
##redis主机IP
host=$1
##redis端口
port=$2
##key模式
pattern=$3
##游标
cursor=0
##退出信号
signal=0
##循环获取key并删除
while [ $signal -ne 1 ]
do
echo "cursor:${cursor}"
sleep 2
##将redis scan得到的结果赋值到变量
re=$(redis-cli -h $host -p $p -c scan $cursor count 1000 match $pattern)
##以换行作为分隔符
IFS=$'\n'
#echo $re
echo 'arr=>'
##转成数组
arr=($re)
##打印数组长度
echo 'len:'${#arr[@]}
##第一个元素是游标值
cursor=${arr[0]}
##游标为0表示没有key了
if [ $cursor -eq 0 ];then
signal=1
fi
##循环数组
for key in ${arr[@]}
do echo $key if [ $key != $cursor ];then echo "key:"$key
##删除key redis-cli -h $host -p $port -c del $key >/dev/null 2>&1 fi
done
done
echo 'done'复制
使用方式:
./redis-del-keys.sh localhost 6379 user:*
复制
表示删除本机6379端口的redis中user:开头的所以key。
↓↓↓↓↓ 点下方“阅读原文”订阅 不迷失Java自学专栏
想自学Java想提高Java技术?来了解下不迷失Java技术专栏吧
专注Java技术研究与教学培训,分享有价值的技术与经验,关注程序员的发展。| 知识改善生活
QQ交流群:245130488
个人博客:http://bumishi.cn
微信号:不迷失Java技术
英文ID:javajidi_com
文章转载自小白懂编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
国产非关系型数据库 Eloqkv 初体验
JiekeXu
132次阅读
2025-04-10 23:51:35
融合Redis缓存的PostgreSQL高可用架构
梧桐
88次阅读
2025-04-08 06:35:40
Redis概要
听溪
38次阅读
2025-04-11 10:23:10
安装与配置Redis
鲁鲁
34次阅读
2025-04-11 10:26:10
Redis数据库——Cluster集群模式
编程Cookbook
28次阅读
2025-04-16 15:34:44
使用Jedis访问Redis数据库
怀念和想念
27次阅读
2025-04-11 15:08:30
Redis geo 实战:“附近的人”实现,打造社交的新维度
老王两点中
27次阅读
2025-04-11 09:02:30
Redis改协议内幕曝光!核心开发者亲述被“踢出局”,外部贡献者几乎全跑光了!
老鱼笔记
24次阅读
2025-04-17 10:41:56
Redis提供的持久化机制
luyingjun
23次阅读
2025-04-11 15:11:05
Redis
鲁鲁
21次阅读
2025-04-07 20:14:35