【实用脚本】批量删除Redis中指定Key方法

tanglu 521 2021-07-19

一、脚本背景

某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数量

1.png


2、正常删除

2.png


3、确认删除结果

3.png

版权声明
本站所有文章均为原创,转载请注明出处!小站维护不易,如果对您有所帮助,希望能点击一下站内广告,谢谢!
上一篇:【MySQL运维】使用mysqladmin命令管理MySQL
下一篇:【MySQL运维】临时关闭binlog进行特殊操作
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

微信二维码