当前位置: 首页 > 面试题库 >

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

梁丘威
2023-03-14
问题内容

我们有数十万个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

我认为,如果键中没有特殊字符,则可以使用此功能。

非常感谢。


问题答案:

您应该尝试使用功能更强大的客户端创建应用程序。请参阅客户端列表。redis-cli是一个非常基本的命令行实用程序,仅用于破解/播放Redis。

我同意您的意见,最好的办法是重新设计您的键/值存储。

如果需要使多个键无效,请考虑使用标记机制:添加键时,使用哈希将标记按键分组,然后使整个标记无效,从而删除哈希中的所有键。



 类似资料:
  • 问题内容: 我正在为我的应用程序创建一个RSS feed文件,在其中我想删除HTML标签,该操作由完成。但是不删除HTML特殊代码字符: 等等 请告诉我任何可用于从字符串中删除这些特殊代码字符的函数。 问题答案: 使用解码或使用删除它们: 编辑:根据雅科的评论的替代 用{2,8}或其他内容替换’+’可能会很好。当出现未编码的“&”时,这将限制替换整个句子的机会。

  • 问题内容: 我想删除特殊字符,例如: 使用Java从String中获取。 问题答案: 这取决于你定义为特殊字符的内容,但是请尝试: 请注意,该^字符不能是列表中的第一个字符,因为你要么必须对其进行转义,否则将意味着“除这些字符外的任何字符”。 另一个注意事项:-字符必须是列表中的第一个或最后一个,否则你必须对其进行转义,否则它将定义一个范围(例如,表示“ 范围内的所有字符” )。 所以,为了保持一

  • 问题内容: import java.util.Scanner; import java.util.regex.*; public class io{ public static void main(String args[]){ Scanner scan = new Scanner(System.in); String c; if((c=scan.nextLine())!=null) { Patt

  • 问题内容: 我面临网址问题,我希望能够转换标题,该标题可以包含任何内容,并去除所有特殊字符,因此它们仅包含字母和数字,当然我想用连字符替换空格。 怎么做?我听说过很多关于正则表达式(regex)的使用… 问题答案: 这应该可以满足您的需求: 用法: 将输出: 编辑: 嘿,只是一个简单的问题,如何防止多个连字符彼此相邻?并将它们替换为1?

  • 问题内容: 如何从字符串中去除特殊字符的答案?不管用。 这是我得到的,它给我一个错误 错误提示 _Element(aka字符)无法转换为预期的参数类型’String’。 问题答案: 像这样: 测试方法如下:

  • 本文向大家介绍如何在R中的特殊字符后删除部分字符串?,包括了如何在R中的特殊字符后删除部分字符串?的使用技巧和注意事项,需要的朋友参考一下 有时我们不需要整个字符串来进行分析,尤其是当它使分析变得复杂或毫无意义时。在这种情况下,可以从完整的字符串中删除我们认为不必要的字符串部分。例如,假设我们有一个字符串ID:00001-1,但我们不想在该字符串中使用-1,那么我们可以将其删除,这可以通过gsub