【实用脚本】批量删除Redis中指定Key方法
一、脚本背景
某Redis实例中存放了大量客户登录态数据,现需要批量删除以user_session:开头的key,但是Redis本身并不支持使用通配符进行批量删除,所以需要结合脚本进行操作
二、脚本内容
1、如果Key名称无转义符
Key名如果是有规则、无转义符,可以通过管道命令直接删除,命令如下(请根据实际情况替换IP、Key名)
redis-cli -h 192.168.1.100 -a 123456 keys user_session* | xargs redis-cli -h 10.5.3.4 -a a5791E2a3043T del
2、如果Key名称包含转义符
如果Key名包含了转义符,通过管道删除并不能生效,观察interger返回为0,故需结合Shell脚本后进行处理
1、导出需要清理的Key
redis-cli -h 192.168.1.100 -a 123456 keys user_session* > /tmp/keys.txt
2、使用for循环遍历删除,运行过程中interger为1代表正常删除
#!/bin/bash for i in `cat /tmp/keys.txt` do redis-cli -h 192.168.1.100 -a 123456 del $i done
三、清理过程
1、统计清理前Key数量
2、正常删除
3、确认删除结果
发表评论
暂时没有评论,来抢沙发吧~