删除Redis中的很多键

时间:2012-11-28 01:36:44

标签: bash redis xargs

尝试做类似的事情:

# redis-cli keys "resque:lock:*" |xargs -0 redis-cli del
xargs: argument line too long

解决这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:4)

摆脱-0。我不熟悉redis,但据我所知redis-cli keys不使用NUL分隔符。

没有它barfs的原因是它处理引号的方式。来自man xargs

  

xargs 从标准输入中读取项目,由空格分隔(可以使用双引号或单引号或反斜杠保护)或换行符,并执行命令( default是/ bin / echo)一次或多次使用任何initial-arguments后跟从标准输入读取的项。标准输入上的空行将被忽略。

试试xargs -d '\n'。这将禁用xarg的“智能”报价处理,并告诉它只是逐行读取参数。