redis批量刪除key

使用redis的過程中,經常會遇到要批量刪除某種規(guī)則的key,但是redis提供了批量查詢一類key的命令keys或scan,沒有提供批量刪除某種規(guī)則key的命令。

image.png

使用keys+xargs實現批量刪除

./redis-cli keys a_* | xargs ./redis-cli del

就是用keys a_*查詢出所有匹配的key,通過xargs命令,將前面查詢出來的key作為后面redis的del命令的輸入,這樣就可以實現redis批量刪除鍵了。

使用keys+xargs實現批量刪除弊端

redis是單線程,如果redis包含了大量的鍵,執(zhí)行keys命令可能會造成redis阻塞,所以一般建議不要在生產環(huán)境下使用keys命令。如果非要遍歷鍵刪除的話,可以在以下三種情況使用:
(1)在一個不對外提供服務的Redis從節(jié)點上執(zhí)行,這樣不會阻塞到客戶端的請求,但是會影響到主從復制。
(2)如果確認鍵值總數確實比較少,可以執(zhí)行該命令。
(3)使用scan命令漸進式的遍歷所有鍵,可以有效防止阻塞。

使用scan+xargs批量刪除

./redis-cli -h 127.0.0.1 -p 6379 --scan --pattern 'a_*' | xargs ./redis-cli -h 127.0.0.1 -p 6379 del

xargs命令介紹

xargs 可以將管道或標準輸入(stdin)數據轉換成命令行參數,也能夠從文件的輸出中讀取數據。
xargs 是一個強有力的命令,它能夠捕獲一個命令的輸出,然后傳遞給另外一個命令。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容