Returns the number of members of the intersect of multiple sorted sets.
ZINTERCARD
numkeys
key [key…] [LIMIT
limit]
This command is similar to ZINTER
, but instead of
returning the result set, it returns just the cardinality of the
result.
Keys that do not exist are considered to be empty sets. With one of the keys being an empty set, the resulting set is also empty (since set intersection with an empty set always results in an empty set).
By default, the command calculates the cardinality of the
intersection of all given sets. When provided with the optional
LIMIT
argument (which defaults to 0 and means unlimited),
if the intersection cardinality reaches limit partway through the
computation, the algorithm will exit and yield limit as the cardinality.
Such implementation ensures a significant speedup for queries where the
limit is lower than the actual intersection cardinality.
Integer reply: the number of members in the resulting intersection.
O(N*K) worst case with N being the smallest input sorted set, K being the number of input sorted sets.
@read @slow @sortedset
127.0.0.1:6379> ZADD zset1 1 "one"
(integer) 1
127.0.0.1:6379> ZADD zset1 2 "two"
(integer) 1
127.0.0.1:6379> ZADD zset2 1 "one"
(integer) 1
127.0.0.1:6379> ZADD zset2 2 "two"
(integer) 1
127.0.0.1:6379> ZADD zset2 3 "three"
(integer) 1
127.0.0.1:6379> ZINTER 2 zset1 zset2
1) "one"
2) "two"
127.0.0.1:6379> ZINTERCARD 2 zset1 zset2
(integer) 2
127.0.0.1:6379> ZINTERCARD 2 zset1 zset2 LIMIT 1
(integer) 1
BZMPOP, BZPOPMAX, BZPOPMIN, ZADD, ZCARD, ZCOUNT, ZDIFF, ZDIFFSTORE, ZINCRBY, ZINTER, ZINTERSTORE, ZLEXCOUNT, ZMPOP, ZMSCORE, ZPOPMAX, ZPOPMIN, ZRANDMEMBER, ZRANGE, ZRANGESTORE, ZRANK, ZREM, ZREMRANGEBYLEX, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZREVRANK, ZSCAN, ZSCORE, ZUNION, ZUNIONSTORE.