计算以字符串开头的键数

  • 本文关键字:开头 字符串 计算 redis
  • 更新时间 :
  • 英文 :


我保存了两种不同类型的密钥,一种以response为前缀,另一种为uuid。我想数一下以uuid开头的键的数目。根据这个答案,可以使用MATCH过滤密钥,但可以获得计数吗?

Redis中没有任何操作可以获取给定前缀的计数。这里有几个想法给你:

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

最新更新