我正在尝试使用以下命令从远程Redis数据库中删除多个键。

redis-cli -h <host> -p 6379 KEYS "myprefix:*" | xargs redis-cli -h <host> -p 6379 DEL

它删除了所有匹配键,但其中没有空格。

例如

已删除:
  • myprefix:abc
  • myprefix:def
  • myprefix:ghi

  • 未删除:
  • myprefix:jkl mno
  • myprefix:pqr stu
  • myprefix:vwx yza

  • 我的查询模式应该是什么,以便它们也被删除?我尝试使用Google搜索,但找不到任何解决方案。

    最佳答案

    问题出在xargs,而不是您的KEYS查询。如果您运行查询,您会注意到它正确返回了带有空格的键。问题是,默认情况下,xargs用空白和换行符分隔输入到其中的字符串。要更改此行为以使其仅由换行符分隔,请添加 -d“\n” 选项。例如:

    redis-cli -h <host> -p 6379 keys "myprefix:*" | xargs -d "\n" redis-cli -h <host> -p 6379 del
    

    关于redis - 删除带空格的键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50816484/

    10-13 02:14