这期内容当中小编将会给大家带来有关利用复述,如何实现批量删除键,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
<强>复述,批量删除关键强>
复述,批量删除关键命令是:
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移动代码> {}1,其中命令最后的1是备份数据库的编号;李> <李>清空当前数据库:<代码> redis-cli flushdb> 代码;李> <>李还原关键:<代码> redis-cli - n 1——原始密钥“PATTERN"美元;| xargs l1 - {} redis-cli{} 0 代码>。
李,>注意清空当前数据库的命令是<代码> flushdb> 代码,不能用<代码> flushall> 代码。<代码> flushdb 代码>和<代码> flushall> 代码的区别是:<代码> flushdb> 代码只会清空当前数据库的数据,而<代码> flushall> 代码会清空当前复述,实例的所有数据。
<强> redis-cli参数强>
上述命令使用<代码> redis-cli> 代码工具完成,在编号为0的默认数据库上操作。对于需要密码,远程复述,主机的情况,<代码> redis-cli> 代码有如下有用参数:
- n:操作的数据库;
——:复述,数据库密码
- h:复述,主机ip,通过- h可以远程批量删除关键
- p:复述,端口
引用>利用复述,如何实现批量删除关键