Redis批量刪除Key的三種方式小結(jié)
更新時間:2025年07月03日 15:06:46 作者:姚夢蕾
本文主要介紹了Redis批量刪除Key的三種方式小結(jié),包括KEYS+DEL、SCAN+DEL、Lua腳本,需分批處理以減少風險,具有一定的參考價值,感興趣的可以了解一下
方法一:使用通配符匹配刪除
通過KEYS命令配合通配符篩選鍵值,再傳遞給DEL命令批量刪除:
redis-cli KEYS "user:*" | xargs redis-cli DEL
注意:當鍵數(shù)量超過10^4時,建議分批處理。使用SCAN替代KEYS可避免阻塞:
redis-cli --scan --pattern "cache:*" | xargs -L 1000 redis-cli DEL
方法二:Lua腳本原子操作
通過執(zhí)行Lua腳本實現(xiàn)原子化批量刪除(Redis 2.6+支持):
local keys = redis.call('KEYS', ARGV[1])
for i=1,#keys,5000 do
redis.call('DEL', unpack(keys, i, math.min(i+4999, #keys)))
end
return #keys
執(zhí)行命令:
redis-cli EVAL "$(cat delkeys.lua)" 0 "order_*"
方法三:管道批量處理
利用redis-cli管道特性實現(xiàn)高效刪除:
redis-cli --scan --pattern "temp_*" | \
awk '{print "DEL "$0}' | \
redis-cli --pipe
方案對比與選型建議
| 方式 | 適用場景 | 風險控制 | 性能影響 |
|---|---|---|---|
| KEYS+DEL | 測試環(huán)境、小數(shù)據(jù)量 | 低 | 高 |
| SCAN+DEL | 生產(chǎn)環(huán)境、大數(shù)據(jù)量 | 高 | 中 |
| Lua腳本 | 需要原子性、復(fù)雜邏輯 | 中 | 低 |
注意事項:
- 所有刪除操作不可逆,建議先備份數(shù)據(jù)
- 復(fù)雜匹配模式建議用
SCAN替代KEYS - 超大數(shù)據(jù)量可拆分多次執(zhí)行,避免內(nèi)存溢出
到此這篇關(guān)于Redis批量刪除Key的三種方式小結(jié)的文章就介紹到這了,更多相關(guān)Redis批量刪除Key內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
RedisDesktopManager無法遠程連接Redis的完美解決方法
下載RedisDesktopManager客戶端,輸入服務(wù)器IP地址,端口(缺省值:6379);點擊Test Connection按鈕測試連接,連接失敗,怎么回事呢?下面小編給大家?guī)砹薘edisDesktopManager無法遠程連接Redis的完美解決方法,一起看看吧2018-03-03
Win10配置redis服務(wù)實現(xiàn)過程詳解
這篇文章主要介紹了Win10配置redis服務(wù)實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-07-07

