ZRANDMEMBER
语法
ZRANDMEMBER key [count [WITHSCORES]]
- 自版本起可用
- Redis Open Source 6.2.0
- 时间复杂度
- O(N),其中 N 是返回的成员数量
- ACL 类别
-
@read
,@sortedset
,@slow
,
仅使用 key
参数调用时,从存储在 key
的有序集合值中返回一个随机元素。
如果提供的 count
参数为正数,返回一个包含**不同元素**的数组。数组的长度要么是 count
,要么是有序集合的基数 (ZCARD
),取两者中较小的值。
如果使用负数 count
调用,行为会改变,命令可以返回**相同的元素多次**。在这种情况下,返回的元素数量是指定 count
的绝对值。
可选的 WITHSCORES
修饰符会改变回复,使其包含从有序集合中随机选择的元素的相应分数。
示例
传递 count 参数时的行为说明
当 count
参数为正数时,此命令的行为如下
- 不返回重复元素。
- 如果
count
大于有序集合的基数,命令将只返回整个有序集合,不包含额外的元素。 - 回复中元素的顺序并非完全随机,因此如有需要,客户端应自行打乱顺序。
当 count
参数为负数时,行为变化如下
- 可能会出现重复元素。
- 始终返回恰好
count
个元素;如果有序集合为空(或键不存在),则返回空数组。 - 回复中元素的顺序是完全随机的。