redis批量模糊删除keys

起因于需要删除前缀为ss-connector:reformLicenseResp:的key,查看时发现有多条;
redis可del key1 key2 key3...,但是没有del keys xx*的操作;
打开百度搜索:redis批量删除keys,找到了大佬们踩过的坑留下的笔记;
其中有一个利用redis-cli和xargs命令的,让我为之一震;
稍作修改试一下:

redis-cli -h 192.21.23.144 -p 6379 -a qqqqq -n 1 keys ss-connector:reformLicenseResp:* | xargs -r -t -n1 redis-cli -h 192.21.23.144 -p 6379 -a qqqqq -n 1 del

执行,完美,删除成功!

 

 
记录一下我的理解:
分为两个部分执行:1、先登录查出需要删掉的key;2、把1中结果当成删除命令的参数,这个参数用xrgs接收,并给删除指令。

xargs下:
-r  no-run-if-empty  就是如果参数为空不执行后面的命令
-t  先打印执行命令 然后再执行
-n1  传入的参数没批执行几条,-n1,1就是每次传入1个值执行一次,具体可看这位大佬的解释 xargs

redis-cli下:
-h  host
-p  port
-a  auth
-n  选择库  -n 1相当于select 1
这就登录了,
然后执行keys ss-connector*这个命令







个人见解,如果不当,还请指导。
参考:https://www.cnblogs.com/kiko2014551511/p/11531584.html

原文地址:https://www.cnblogs.com/motorye/p/14922436.html