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 修饰符会改变回复,使其包含从有序集合中随机选择的元素的相应分数。

示例

ZADD dadi 1 uno 2 due 3 tre 4 quattro 5 cinque 6 sei ZRANDMEMBER dadi ZRANDMEMBER dadi ZRANDMEMBER dadi -5 WITHSCORES

传递 count 参数时的行为说明

count 参数为正数时,此命令的行为如下

  • 不返回重复元素。
  • 如果 count 大于有序集合的基数,命令将只返回整个有序集合,不包含额外的元素。
  • 回复中元素的顺序并非完全随机,因此如有需要,客户端应自行打乱顺序。

count 参数为负数时,行为变化如下

  • 可能会出现重复元素。
  • 始终返回恰好 count 个元素;如果有序集合为空(或键不存在),则返回空数组。
  • 回复中元素的顺序是完全随机的。

RESP2 回复

Bulk string 回复: 未指定额外的 count 参数时,命令返回一个随机选中的成员,或当 key 不存在时返回 Nil 回复Array 回复: 传递额外的 count 参数时,命令返回一个成员数组,当 key 不存在时返回空数组。如果使用 WITHSCORES 修饰符,回复是有序集合中成员及其分数的列表。

RESP3 回复

Bulk string 回复: 未指定额外的 count 参数时,命令返回一个随机选中的成员,或当 key 不存在时返回 Null 回复Array 回复: 传递额外的 count 参数时,命令返回一个成员数组,当 key 不存在时返回空数组。如果使用 WITHSCORES 修饰符,回复是有序集合中成员及其分数的列表。
评价本页
返回顶部 ↑