利用复述,如何实现批量删除关键

  介绍

这期内容当中小编将会给大家带来有关利用复述,如何实现批量删除键,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

<强>复述,批量删除关键

复述,批量删除关键命令是:

 redis-cli键“PATTERN"美元;| xargs redis-cli DEL 

在本人的实践中,这条命令存在两个问题:

1。redis-cli键“PATTERN"美元的结果会出现编的号,不是纯粹的关键列表,如下所示:

 

本人用的是复述,5版本,未测试低版本复述是否也会添加1),2)这样的编号。可以想到,因为编号的存在,管道后DEL删除的是错误的关键;

2。如果关键存在空格,管道后面的德尔将无法正确删除。例如关键是“123 - 4566”,传送到管道后面删除,就变成了删除两个键,与预期不符合。

经过一番研究,复述,批量删除关键的正确命令是:

 redis-cli——原始密钥“PATTERN"美元;| xargs - {} redis-cli德尔“{}”

重点有两个,分别解决上述命令存在的问题:

    <李>使用原始参数,去掉结果编号; <李> xargs使用占位符,删除关键时将整个结果传过去,避免了空格问题。
      李,

改正后的命令在本人的情况下运行正常,就是删除两百多万个关键有点慢,花了半个多小时。

<强>复述,批量移动关键

如果你知道有用关键的模式,并且有用关键数量很小,可以通过复述,批量移动键,然后flushdb的方法快速删除,效率比上文提到的批量删除大量无用关键高很多。

操作方法如下:

    <李>批量移动关键:<代码> redis-cli——原始密钥“PATTERN"美元;| xargs l1 - {} redis-cli移动代码> <李>清空当前数据库:<代码> redis-cli flushdb> <>李还原关键:<代码> redis-cli - n 1——原始密钥“PATTERN"美元;| xargs l1 - {} redis-cli{} 0
      李,

注意清空当前数据库的命令是<代码> flushdb> flushall> flushdb 和<代码> flushall> flushdb> flushall>

<强> redis-cli参数

上述命令使用<代码> redis-cli> redis-cli>

- n:操作的数据库;

——:复述,数据库密码

- h:复述,主机ip,通过- h可以远程批量删除关键

- p:复述,端口

利用复述,如何实现批量删除关键