Redis 中有刪除單個 Key 的指令 DEL,但好像沒有批量刪除 Key 的指令,不過我們可以借助 Linux 的 xargs 指令來完成這個動作。代碼如下:
redis-cli keys "*" -print0 | xargs -0 redis-cli del
但是如何實現 redis 批量設置過期時間呢,或者類似需要傳遞參數的需求?經過實踐操作如下:
編寫shell文件,名稱為“expireAll.sh”,並設置為可執行文件,內容如下:
# 給指定緩存設置1分鍾過期 redis-cli -h 127.0.0.1 -p 6379 expire $1 60
注:設置可執行文件命令:chmod 755 expireAll.sh (r 4 w2 x 1),設置登錄用戶可以讀寫執行,組或者其他用戶只能讀和執行
2.執行如下命令,將 redis 中緩存名稱以"prefix_"為前綴的所有鍵批量設置過期時間:
redis-cli -p 6379 keys "prefix_*" | xargs -I {} ./exipreAll.sh {}
注:“prefix_”前綴去除,就是對所有key設置超時時間