【问题标题】:Count the number of keys that start with string计算以字符串开头的键的数量
【发布时间】:2021-07-07 19:13:56
【问题描述】:

我保存了两种不同类型的密钥,一种以response 为前缀,另一种以uuid 为前缀。我想计算以uuid 开头的键的数量。根据this answer 的说法,可以使用MATCH 过滤键,但是可以得到计数吗?

【问题讨论】:

标签: redis


【解决方案1】:

Redis 中没有任何操作来获取给定特定前缀的计数。这里有几个想法供您参考:

  1. 如果您只存储字符串,则可以使用Hash 来跟踪所有内容,在这种情况下,您的 UUID 将是散列中的字段而不是字符串,但它们实际上是等效的。这将允许您使用HLEN 命令查看您拥有多少个 UUID。这实际上是一个 O(1) 解决方案 - 并且具有不依赖单独的计数器键的额外好处
  2. 保留一个 uuid_coutner 键,每当添加新的 UUID 时,只需使用 INCR,如果删除,只需使用 DECR。如果一次添加/删除超过 1 个,则可以使用 INCRBY/DECRBY。这实际上是一个 O(1) 解决方案,但当然,计数器/键是彼此独立存储的。
  3. 当然,您也可以使用您提到的帖子(扫描所有密钥)来计算它们,但这都是 O(n) 并且会产生大量不必要的流量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 2021-03-12
    • 2017-10-20
    相关资源
    最近更新 更多