redis中沒有直接根據正規表示式刪除key的指令,只有del key1 key2...指令
但是redis中有透過正規表示式取得key的指令:keys "正規表示式"
可以藉助xargs指令實作批次刪除key,把查出來的key值當做參數傳給del
redis-cli keys "mailspec*" | xargs del
#完整指令:
[root@localhost redis7001]# redis-cli -h 192.169.1.71 -p 7001 -a 123456 keys em* | xargs -r -t -n1 ./redis-cli -h 192.169.1.71 -p 7001 -a 123456 del
補充1:xargs指令後需加上參數-r,不然當keys的數量為0時,就會報錯(error) ERR wrong number of arguments for &lsquo ;del’ command
補充2:xargs指令後需加上參數-n1,不然當叢集情況keys的數量大於1時,可能會報錯(error) CROSSSLOT Keys in request don’t hash to the same slot
補充3:不加-t也可以,加上-t會輸出每次刪除的內容,不加則不輸出刪除的內容,但還是會輸出每次刪除的key的數量
1、刪除所有的key,可以使用redis本身的指令:
flushdb 刪除目前資料庫中的所有Key
flushall 刪除所有資料庫中的key
2、使用linux中的xargs來刪除所有的key
redis-cli keys “*” | xargs redis-cli del
3、刪除包含某些關鍵字的key
redis-cli keys “xxx*” | xargs redis- cli del
4、如果需要指定密碼,可以這樣使用:
redis-cli -a pwd keys “*” | xargs redis-cli -a pwd del
以上是Redis批次刪除key的指令怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!