如何在Redis中批量删除数十万个带有特殊字符的键

jak*_*don 10 redis

我们有一个包含各种特殊字符的数十万个Redis密钥列表,我们希望批量删除它们.在这个问题上有类似问题的一些很好的答案:如何使用Redis原子地删除匹配模式的键

但是,我似乎无法找到以下案例的答案:

  1. 我们有大量的钥匙(数十万)
  2. 键具有特殊字符的所有方式,如双引号("),反斜杠(),各种奇怪的Unicode字符等.
  3. 我们正在使用windows redis-cli客户端
  4. 奖励:理想情况下,我们可以将此命令作为MULTI/EXEC事务的一部分发出,因此我们也可以原子地删除SET以及键.

如果我们可以像下面这样做,我会很乐意,但是它会处理带有Redis问题的所有特殊字符的键:

redis-cli SMEMBERS "myGiganticListOfKeys" | xargs --delim='\n' redis-cli DEL

不幸的是,这只是给出了以下错误:

"C:/Program Files (x86)/Git/bin/xargs.exe": redis-cli: Bad file number

我认为如果我们在键中没有特殊字符,这将会起作用.

非常感谢提前.

the*_*000 2

您应该尝试使用更强大的客户端创建应用程序。查看客户名单。redis-cli 是一个非常基本的命令行实用程序,旨在破解/使用 Redis。

我同意你的观点,最好的方法是重新设计你的键/值存储。

如果需要使多个键失效,请考虑使用标记机制:添加键时使用散列按标签对键进行分组,然后使整个标签失效,删除散列中的所有键。