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

2021-07-16 10:40:37 字數 687 閱讀 4983

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管道刪除(linux命令列執行)

根據萬用字元檢視待刪除的key

redis-cli keys "site_msg_999*」

接linux管道刪除之

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

3.更好的方式

keys * 命令在資料量很大的情況下,直接在redis cli中執行會嚴重影響伺服器效能,更好的方式是在lua指令碼中執行

eval方式執行redis lua

lua方式萬用字元查詢

redis-cli eval "return redis.call('keys','site_msg_888*')」 0

lua方式萬用字元刪除

eval "return redis.call('del',unpack(redis.call('keys',argv[1])))" 0 『site_msg_888*』

Redis 萬用字元批量刪除key

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

redis批量刪除

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

Redis 刪除匹配萬用字元的key

看網上是用keys命令刪除的,建議用scan命令替代,不會阻塞伺服器。批量刪除匹配萬用字元的key用到了linux中的管道和xargs引數 plain view plain copy print?redis cli keys s xargs redis cli del 說明 這條命令是在linux下...