前幾天有一個需求,有一個槽的緩存多餘了,需要刪除掉,但是這個槽裏還有很多其他的緩存。這裏我們就需要用到redis的模糊匹配key的方法批量刪除這一批key了。特意記錄下。
Redis 中有刪除單個 Key 的指令 DEL,但好像沒有批量刪除 Key 的指令,不過我們可以藉助 Linux 的 命令來完成這個動作。
首先通過linux連接redis,然後進去該redis的src(redis-cli的上級目錄)目錄(我的路徑可供參考:cd redis-3.0.7/src),然後在這個路徑下打出這行命令: 這裏分兩種情況
1 - redis爲默認端口號6379,無連接密碼,刪除命令如下:
[root@xxxserver1 src]# ./redis-cli keys "key*" | xargs redis-cli DEL
注意:我操作的時候,這裏redis-cli前面的路徑一開始用的也是 ./ ,但是一直是失敗的,不知道是由於版本的關係還是爲什麼。我寫的是完整的絕對路徑 命令如下: [root@xxxserver1 src]# /root/redis/redis-3.0.7/src/redis-cli keys "key*" | xargs redis-cli del
2 - 另外還有一種情況,有連接密碼(-a後面的內容),端口號有變化(不是6379,-p後面的內容),需要指定具體的卡槽的(-n後面的內容),則刪除命令如下:
[root@xxxserver1 src]# /root/redis/redis-3.0.7/src/redis-cli -a possword -p 6379 -n 12 KEYS "key*" | xargs /root/redis/redis-3.0.7/src/redis-cli -a possword -p 6379 -n 12 DEL