【问题标题】:Redis match keys that start with a digit [KEYS]Redis 匹配以数字开头的键 [KEYS]
【发布时间】:2017-04-06 19:43:06
【问题描述】:

是否可以获得所有以数字开头的键(例如12.2323.MKSUID)? KEYS 命令应该支持模式但是什么样的模式/正则表达式风格?我试过KEYS \d 没有结果。

【问题讨论】:

  • The documentation 解释清楚。
  • 请仔细阅读有关KEYS 的文档:> 警告: 将 KEYS 视为仅应极其小心地在生产环境中使用的命令。
  • 请避免使用 KEYS 并选择 SCAN

标签: regex redis


【解决方案1】:

This question 有一些很好的信息。就像建议的评论一样,最好使用扫描:

SCAN 0 MATCH "[0-9]*"

【讨论】:

    【解决方案2】:

    KEYS 命令支持 glob 样式模式。要匹配以数字开头的键,您可以使用以下模式:

    KEYS [0-9]*
    

    正如 Itamar 所指出的,在实时系统中使用带有模式匹配的 KEYS 时要小心,这会严重影响性能。

    更多细节和例子可以在redis.io上的KEYS的描述中找到

    【讨论】:

      【解决方案3】:

      用于获取以数字开头的键。

      KEYS [0-9]*

      【讨论】:

      • 为了未来的读者:虽然这个答案是 100% 正确的 - 在现实世界的情况下应该避免使用 KEYS,而应该使用 SCAN。
      猜你喜欢
      • 2014-01-15
      • 1970-01-01
      • 2023-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-05
      相关资源
      最近更新 更多