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