ZRANDMEMBER
语法
ZRANDMEMBER key [count [WITHSCORES]]
- 可用版本
- 6.2.0
- 时间复杂度
- O(N),其中 N 是返回的成员数量
- ACL 类别
-
@read
,@sortedset
,@slow
,
仅使用 key
参数调用时,从存储在 key
中的有序集合值中返回一个随机元素。
如果提供的 count
参数为正数,则返回一个包含 **不同元素** 的数组。数组的长度为 count
或有序集合的基数(ZCARD
)中的较小者。
如果使用负数 count
调用,则行为发生变化,并且命令允许返回 **相同元素多次**。在这种情况下,返回的元素数量是指定的 count
的绝对值。
可选的 WITHSCORES
修饰符会更改回复,使其包含从有序集合中随机选择的元素的相应分数。
示例
传递 count 时行为的规范
当 count
参数为正值时,此命令的行为如下
- 不返回重复元素。
- 如果
count
大于有序集合的基数,则命令将只返回整个有序集合,不包含其他元素。 - 回复中元素的顺序不是真正随机的,因此需要客户端在必要时对它们进行洗牌。
当 count
为负值时,行为发生变化,如下所示
- 可能出现重复元素。
- 始终返回正好
count
个元素,或者如果有序集合为空(不存在的键),则返回空数组。 - 回复中元素的顺序是真正随机的。