Cover image

Redis批量删除

Oct 20, 2015

Redis 通配符删除

Redis 由于是不支持正则的,只支持通配符的pattern,诸如*,?以及[],类似这样子:

keys *
keys a?c
keys a[Bb]c
keys a\*c

可是当我准备del key的时候,却发现del又不支持pattern,这倒又是个头疼的事了,查看下redis的文档,貌似支持pattern的命令也就寥寥几个,scansort之类的。 怎么办呢,上千万条数据总不能一个一个del吧,外事不决问google,还是求助下大牛们,毕竟我们还是站在巨人的肩膀上的,终于找到这样一个方式:

redis-cli keys "cat:\*:item" |xargs redis-cli del

是通过keys匹配到所有match的记录后通过xargs命令传递给redis-clidel然后进行删除。需要注意的是xargs后的redis如果没有设置环境变量的话需要输入绝对路径。


20 Oct 2015

Post by: MetaCoder