如何在Redis中获取集合的大小?

72

对于列表,我可以执行以下操作:

LLEN KeyName

它将返回Redis列表的大小。对于集合,等效命令是什么?我似乎在任何文档中都找不到这个。

3个回答

115
你正在寻找SCARD命令:

SCARD key

返回存储在指定键上的集合的基数(元素数量)。

返回值:
整数回复:集合的基数(元素数量),如果键不存在则返回0。

时间复杂度: O(1)

你可以在文档网页上查看所有的集合命令。


4
Redis 最蠢的一点是根据数据类型的不同,完成相同操作需要不同的命令。求长度就是其中之一。 - Scalable
@Scalable,那些Redis工程师太糟糕了 :) 他们想不到这个 :) - Yilmaz

4
如果这是一个排序集合,你可以使用:
ZCOUNT myset -inf +inf

或者

ZCARD myset

4
请勿仅以代码回答,还需要解释代码的作用以及如何解决问题。带有解释的答案通常更具质量,并且更容易赢得赞同。 - today

2
  • zCard is short for cardinality (cardinality is the number of elements in a set). It gives you total number of members inside of a "sorted set".

  • Sometimes you might wanna extract how many members are inside of a range in a sorted set. For that you can use zCount.

    ZCOUNT cars 0 50  // inclusive
    

这将包括0和55。0 ≤...≤ 50。但是如果您不想包括它们

ZCOUNT cars (0 (50
  • if it is regular set

    SCARD cars 
    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接