redis集群批量模糊删除key

首先明确几点:

  1. redis命令行内本身对这功能就没有特别友好的支持
  2. 需要借助linux的xargs命令
  3. 需要目标redis是否集群

话不多说,直接上命令:
redis-cli -h 此处写入redis所在主机IP -p 端口 keys "模糊匹配的表达式" | xargs -n1 redis-cli -h 此处写入redis所在主机IP -p 端口 del

举个例子:
redis-cli -h 192.168.13.107 -p 7012 keys "WC_MSG_SUP_CONTRACT_*" | xargs -n1 redis-cli -h 192.168.13.107 -p 7012 del

解释一下:

  1. xargs后面的 -n1 是集群情况下要加的,不然当集群key的数量大于1是,会报错 (error) CROSSSLOT Keys in request don’t hash to the same slot

  2. 如果看到 (error) ERR wrong number of arguments for ‘del’ command 不要着急,这意思是你前面的redis-cli -h 192.168.20.33 -p 7012 keys "WC_MSG_SUP_CONTRACT_*" 这个命令找出来的key的数量为0,既然为0了,那后面删除报错也没关系了,因为你本来查询的key就不存在的。如果不想看到这样的报错,在xargs后面添加 -r 就可以了

  3. 如果你想看究竟都删除了哪些具体的key,可以在xargs后面添加参数 -t ,不加也是可以的,不加的话输出的就是每条key的数量

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、说明 redis集群上有时候会需要删除多个key,就必须需要登录到每个节点上,而且有可能这个key不在这个节点...
    陈强Mike晓阅读 5,603评论 0 1
  • Redis中有删除单条数据的命令DEL但是他没有批量删除多条数据的方法,那我们怎么去批量删除多条数据呢! 第一种方...
    达微阅读 10,017评论 0 2
  • I. 由于测试项目上线,需要删除redis所有的key来开始新测试。 发现del命令只能一个一个的删除,那不成我又...
    五大RobertWu伍洋阅读 11,982评论 0 0
  • redis-cli中只有一个del命令可以用来删除key,但是无法用到keys命令的那个匹配模式。目前比较好的解决...
    ProteanBear阅读 7,272评论 0 0
  • 推荐指数: 6.0 书籍主旨关键词:特权、焦点、注意力、语言联想、情景联想 观点: 1.统计学现在叫数据分析,社会...
    Jenaral阅读 11,020评论 0 5