1. 程式人生 > >批量刪除redis數據庫中的key

批量刪除redis數據庫中的key

訪問 包含 -c 需要 linu flush 默認 方法 cal

在redis數據庫中,如果大量以某些字段開頭或結尾的key,一般都會用到命令keys進行模糊匹配。但是當我們想刪除批量指定的keys,卻犯愁了,因為redis沒有提供相關的命令。那我們怎麽操作能實現預期的效果呢?

(1) 刪除單個key

127.0.0.1:6379> del key

如果知道有限多個key的名字,以下操作也可以實現批量操作

127.0.0.1:6379> del key1 key2 key3 ....

當key的數量達到一定數量時,這個方法明顯時不現實的。

註意:redis命令行默認使用空格來分割key值,如果剛好某個key的明早帶有空格,則對於有空格的key需要用引號包含起來:

127.0.0.1:6379>del ”first key" "second key"

(2) 批量刪除key

批量刪除key,我們可以借助Linux 的 xargs 指令來完成這個動作

127.0.0.1:6379>redis-cli keys "a*" | xargs redis-cli del
說明:如果redis-cli沒有設置成系統變量,需要指定redis-cli的完整路徑  
比如:/usr/local/redis/redis-cli keys "a*" | xargs /usr/local/redis/redis-cli del  

如果要指定 Redis 數據庫訪問密碼,使用下面的命令

127.0.0.1:6379>redis-cli -a password keys "a*" | xargs redis-cli -a password del 

如果要訪問 Redis 中特定的數據庫,使用下面的命令

//下面的命令指定數據序號為0,即默認數據庫  
127.0.0.1:6379>redis-cli -n 0 keys "a*" | xargs redis-cli -n 0 del

(3) 刪除所有Key
刪除所有Key,可以使用Redis的flushdb和flushall命令

//刪除當前數據庫中的所有Key  
flushdb  
//刪除所有數據庫中的key  
flushall 

批量刪除redis數據庫中的key