前几天有一个需求,有一个槽的缓存多余了,需要删除掉,但是这个槽里还有很多其他的缓存。这里我们就需要用到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