ZCARD
Introduction
In Dragonfly, as well as in Redis and Valkey, the ZCARD
command is used to return the number of members in a sorted set stored at a given key.
This is particularly useful when you need to monitor the size of a sorted set or implement pagination, leaderboards, or other order-based storage solutions.
Syntax
ZCARD key
- Time complexity: O(1)
- ACL categories: @read, @sortedset, @fast
Parameter Explanations
key
: The key of the sorted set whose cardinality (number of members) is to be fetched.
Return Values
- The command returns an integer representing the number of members in the sorted set.
- If the key does not exist,
0
is returned.
Code Examples
Basic Example
To get the number of members in a sorted set:
dragonfly$> ZADD myzset 1 "member1" 2 "member2" 3 "member3"
(integer) 3
dragonfly$> ZCARD myzset
(integer) 3
When the Sorted Set is Empty
If the sorted set is empty or non-existent, the ZCARD
command returns 0
.
dragonfly$> ZCARD emptyset
(integer) 0
Using ZCARD
for Pagination
Suppose you are building a leaderboard and need to know how many total players are ranked to help with pagination:
dragonfly$> ZADD leaderboard 100 "player1" 150 "player2" 200 "player3"
(integer) 3
dragonfly$> ZCARD leaderboard
(integer) 3
Best Practices
- Since
ZCARD
only fetches the number of elements, it is safe to use even with large sets without performance concerns. - Ideal for checking the size of sorted sets before executing more complex operations on large sets.
Common Mistakes
- Assuming
ZCARD
can return detailed information about members; it only returns the count of elements.
FAQs
What happens if the key does not exist?
If the key does not exist, ZCARD
will return 0
since there are no members in a non-existent set.
Can I use ZCARD
on a non-sorted set?
No, ZCARD
specifically works with sorted sets.
If you use it on a key that holds a different data type, Dragonfly will throw an error.
For counting members of a regular set, you should use the SCARD
command.