Redis批量刪除key的命令詳解

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 ‘del’ command
  • 補充2:xargs命令後需加上參數-n1,不然當集群情況keys的數量大於1時,可能會報錯 (error) CROSSSLOT Keys in request don’t hash to the same slot
  • 補充3:不加-t也可以,加上-t會輸出每次刪除的內容,不加則不輸出刪除的內容,但還是會輸出每次刪除的key的數量

擴展:redis中批量刪除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的命令的文章就介紹到這瞭,更多相關Redis批量刪除key內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: