Returns one or more random members from a sorted set.
ZRANDMEMBER
key
[count [WITHSCORES
]]
When called with just the key
argument, return a random
element from the sorted set value stored at key
.
If the provided count
argument is positive, return an
array of distinct elements. The array’s length is
either count
or the sorted set’s cardinality
(ZCARD
), whichever is lower.
If called with a negative count
, the behavior changes
and the command is allowed to return the same element multiple
times. In this case, the number of returned elements is the
absolute value of the specified count
.
The optional WITHSCORES
modifier changes the reply so it
includes the respective scores of the randomly selected elements from
the sorted set.
Bulk string reply: without the additional count argument, the command returns a randomly selected member, or Nil reply when key doesn’t exist.
Array reply: when the additional count argument is passed, the command returns an array of members, or an empty array when key doesn’t exist. If the WITHSCORES modifier is used, the reply is a list of members and their scores from the sorted set.
Bulk string reply: without the additional count argument, the command returns a randomly selected member, or Null reply when key doesn’t exist.
Array reply: when the additional count argument is passed, the command returns an array of members, or an empty array when key doesn’t exist. If the WITHSCORES modifier is used, the reply is a list of members and their scores from the sorted set.
O(N) where N is the number of members returned
@read @slow @sortedset
127.0.0.1:6379> ZADD dadi 1 uno 2 due 3 tre 4 quattro 5 cinque 6 sei
(integer) 6
127.0.0.1:6379> ZRANDMEMBER dadi
"uno"
127.0.0.1:6379> ZRANDMEMBER dadi
"uno"
127.0.0.1:6379> ZRANDMEMBER dadi -5 WITHSCORES
1) "cinque"
2) "5"
3) "sei"
4) "6"
5) "quattro"
6) "4"
7) "quattro"
8) "4"
9) "sei"
10) "6"
When the count
argument is a positive value this command
behaves as follows:
count
is bigger than the cardinality of the sorted
set, the command will only return the whole sorted set without
additional elements.When the count
is a negative value, the behavior changes
as follows:
count
elements, or an empty array if the sorted
set is empty (non-existing key), are always returned.BZMPOP, BZPOPMAX, BZPOPMIN, ZADD, ZCARD, ZCOUNT, ZDIFF, ZDIFFSTORE, ZINCRBY, ZINTER, ZINTERCARD, ZINTERSTORE, ZLEXCOUNT, ZMPOP, ZMSCORE, ZPOPMAX, ZPOPMIN, ZRANGE, ZRANGESTORE, ZRANK, ZREM, ZREMRANGEBYLEX, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZREVRANK, ZSCAN, ZSCORE, ZUNION, ZUNIONSTORE.