用xargs批量删除Redis的keys的技巧

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

    之前有在find命令的时候说到xargs的妙用,可以通过它去批量复制或删除find命令找到文件。今天在用redis的时候搞了好一些没用的keys,要把删掉的时候尴尬了,redis并没有提供批量删除的方法,甚至找个GUI也只给看不给碰的。。。

    于是,查了点儿套路。

    由于redis-cli后面可以直接接redis命令在控制台输出,xargs就可以直接用上了。

    由于redis的keys命令支持通配符而del命令不支持,使用redis-cli keys "*"可以得到所有redis里面的key,全部命令如下

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

这条命令便会删除所有键,而实际应用中会需要删掉某一命名空间里的keys,这里通配符"*"改成合适的命名即可,类似"(命名空间的名字)*"

对命名空间提一下,redis的name主要作用是类似一堆key的前缀,貌似是一种很牛逼的方式将同一name下的key压缩存储,大大加强了效率,通常name会用hset("(key的名字):(某个序列号)",key,value)来存储冒号没有实际意义但公认把放到一个地方(不是真在redis里多个冒号前面的命名的文件夹,仅为了视觉便利),GUI里就会这样显示

用xargs批量删除Redis的keys的技巧_第1张图片

 

还没有细看源码,不过听leader说了很多碉堡的数据结构和自己写的算法,有时间一定去看看,马克之

转载于:https://my.oschina.net/u/2247638/blog/749945

你可能感兴趣的:(用xargs批量删除Redis的keys的技巧)