How do I get the size of a set on Redis?
Asked Answered
M

3

74

For lists I can do the operation:

LLEN KeyName

and it will return the size of a list in Redis. What is the equivalent command for sets? I can't seem to find this in any documentation.

Maintopmast answered 15/2, 2014 at 1:21 Comment(0)
S
116

You are looking for the SCARD command:

SCARD key

Returns the set cardinality (number of elements) of the set stored at

Return value
Integer reply: the cardinality (number of elements) of the set, or 0 if key does not exist.

Time complexity: O(1)

You can view all of the set commands on the documentation webpage.

Seedtime answered 15/2, 2014 at 1:23 Comment(2)
One of the most stupid thing about redis is that there are different commands to do the same thing depending on data type. Finding Length is one of these.Geometrize
@Geometrize those Redis engineers suck :) they could not think of it :)Kristynkrock
J
4

If it's a sorted set, you can use

ZCOUNT myset -inf +inf

or

ZCARD myset
Jacquelinjacqueline answered 27/4, 2020 at 16:32 Comment(1)
Please don't post only code as an answer, but also provide an explanation what your code does and how it solves the problem of the question. Answers with an explanation are usually of higher quality, and are more likely to attract upvotes.Conall
K
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
    

this will include 0 and 55. 0 <= .... <=50. But if you do not want to include them

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

    SCARD cars 
    
Kristynkrock answered 7/8, 2022 at 17:32 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.