redis这个东西,挺有用的,但有时候存入了错误的key,还沙雕的没有设置过期时间的时候,尤其是当你存了好多,然后想去处理的时候,才发现这玩意好难用。总结了下批量删除的方法。
那么什么是xargs呢,网上给出的解释如下

xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。
xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。
xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。
xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。
xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。
之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了 xargs 命令

xargs 一般是和管道一起使用。
命令格式:

somecommand |xargs -item  command

 

简单来说,就是|左边的命令执行的结果,传递给右边xargs后的命令,所以可以用这个方法来操作redis,先用keys 方法模糊查询出相关的key,然后传入del进行删除,思路有了,具体实现就是这样子:

$connect      = "redis-cli -h '{$host}' -p {$port} -n {$db} -a '{$auth}'";
$command      = " {$connect} keys '*{$key}*' | xargs  --no-run-if-empty {$connect} del";

如此便可以删除想要删除的所有key

看看以下链接的内容,基本就搞懂xargs的用法了
linux xargs


0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据