我们有一个由数十万个Redis键组成的列表,其中包含各种特殊字符,我们想要批量删除它们。有一些关于类似问题的非常好的答案在这个问题上:如何使用Redis原子地删除匹配模式的键
然而,我无法找到以下情况的答案:
非常感谢您的帮助。
- 我们有大量的键(数十万)
- 这些键具有各种特殊字符,例如双引号(“),反斜杠(\),各种奇怪的Unicode字符等。
- 我们正在使用Windows redis-cli客户端
- 额外奖励:理想情况下,我们将能够将此命令作为MULTI / EXEC事务的一部分发布,以便我们还可以与键一起原子地删除SET。
redis-cli SMEMBERS "myGiganticListOfKeys" | xargs --delim='\n' redis-cli DEL
不幸的是,这只会出现以下错误:
"C:/Program Files (x86)/Git/bin/xargs.exe": redis-cli: Bad file number
如果键中没有特殊字符,我认为这本来可以运行。非常感谢您的帮助。
redis-cli SMEMBERS "myGiganticListOfKeys" | xargs --delim='\n' redis-cli DEL
,它会出错,可能是因为某些键中有特殊字符,而redis-cli不知道该怎么处理它们。就好像我必须编写自己的逻辑来转义这些字符一样。 - jakejgordon