Redis 刪除匹配萬用字元的key

2021-07-24 17:10:27 字數 722 閱讀 5798

看網上是用keys命令刪除的,建議用scan命令替代,不會阻塞伺服器。

批量刪除匹配萬用字元的key用到了linux中的管道和xargs引數:

[plain]view plain

copy

print?

redis-cli keys "s*" | xargs redis-cli del  

說明:這條命令是在linux下執行的。

如果redis-cli不在當前目錄,需要寫上redis-cli的完整路徑。

如果需要制定資料庫,需要用到 -n 資料庫編號   引數,下面是刪除2資料庫中s開頭的鍵:

[plain]view plain

copy

print?

redis-cli -n 2 keys "s*" | xargs redis-cli -n 2 del  

[root.adminssh@localhost ~]$ redis-cli scan 0 match cmd* count 1000000 | xargs redis-cli del

(integer) 0

redis-cli scan 0 match cmd* count 1000000 | xargs redis-cli del 

這個命令刪除1000000key裡面匹配cmd*的所有key。

還可以用lua指令碼來完成,個人不推薦。

Redis 萬用字元批量刪除key

由於 keys 命令可能會導致 redis 程序掛帶,因此部分雲廠商會禁用此命令,如網易雲,那麼在這種情況下如何批量刪除 key?可以考慮 scan match 的方式迭代獲取到所有的 key,然後批量刪除。示例 python 如下 import redis pool redis.connectio...

redis的萬用字元和批量刪除Key

1.del 直接加鍵名稱 del key1 key2 key3 127.0.0.1 6379 del site msg 99973 false site msg 99974 false site msg 99979false 2.批量刪除key 可用keys str 列出要刪除的key,接linux...

redis 模糊匹配刪除大量快取

參考文章 這個老哥的方法我試過了,可惜在我這個場景下沒法實現,以下方法實測有效,算是乙個補充吧!伺服器端批量刪除快取,採用模糊匹配端方式大量刪除 我的環境是伺服器與redis在同乙個區域網 執行命令如下 redis cli h ip p 埠 a password n 1 keys task xarg...