redis 集群批量刪除 某些key

2021-10-19 05:19:29 字數 1196 閱讀 9716

驗證:

插入資料

10.20.26.92:7000>

set test/s1 1

10.20.26.92:7000>

set test/s2 2

刪除資料
redis-cli -h 127.0.0.1 -p 6379 -a 123456 keys "test/s*"

|xargs redis-cli -h 127.0.0.1 -p 6379 del

上刪除命令相當於:
redis-cli -h 127.0.0.1 -p 6379 -a 123456  del test/s1 test/s2
命令解釋

redis支援批量查詢key的keys命令,卻沒有批量刪除key的dels命令

但是del命令支援同時刪除多個key,即使用del key1 key2 key3命令

所以先用 redis-cli -h 127.0.0.1 -p 6379 keys "key:*"命令查詢到所有keys①

然後再用 xargs命令執行redis-cli -h 127.0.0.1 -p 6379 del keys① 命令進行刪除。

xargs命令會把管道符(|)左邊命令的執行結果拼接到右邊命令的最後再執行

關於xargs 命令的用法,請參考

驗證:插入資料

10.20.26.92:7000>

set test/s1 1

10.20.26.92:7000>

set test/s2 2

刪除集群資料:
redis-cli -c -h 127.0.0.1 -p 6379 keys "test/s*"

|awk -f' '

''

命令解釋

因為集群模式下key的分布不在乙個槽內,所以使用del key1 key2 key3命令會報錯:

(error) crossslot keys in request don』t hash to the same slot

同理使用redis-cli -h 127.0.0.1 -p 6379 keys "key:*"命令查詢到所有keys①

再使用awk -fs命令對左邊查詢結果keys①用空格分割後依次呼叫redis-cli -c -h 127.0.0.1 -p 6379 del key命令進行刪除

awk的用法參考

redis集群批量刪除指定的key

工作中遇到乙個問題,redis中儲存了大量的key,而且沒有設定時效,其中很大一部分後來都沒用了,導致redis體積龐大,查詢緩慢。伺服器版本為windows,網上搜尋到很多批量刪除的方法都是linux下的,幾番尋找,終於找到了在windows下批量刪除超大量key的方法。首先貼一下linux下的方...

redis批量刪除

redis中沒有批量刪除資料的指令,但可以借助linux的指令xargs來批量刪除 如果redis cli沒有設定成系統變數,需要指定redis cli的完整路徑,如 如果要指定 redis 資料庫訪問密碼,使用下面的命令 如果要訪問 redis 中特定的資料庫,使用下面的命令 刪除所有key,可以...

redis集群 刪除節點

想要刪除集群節點中的某乙個節點,需要嚴格執行2步 1 將這個節點上的所有插槽轉移到其他節點上 2 使用 redis trib.rb 刪除節點 下面 假設我們要刪除 6382 這個節點為例 a 在 my soft redis安裝包及jar包 redis 3.0.4 src 目錄下執行指令碼 redis...