起因於需要刪除前綴為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