*Redis zrandmember 命令

*语法

ZRANDMEMBER key [count [WITHSCORES]]

当仅使用 key 参数调用时,返回存储在 key 的有序集合值中的一个随机元素。

如果提供的 count 参数为正数,则返回不同元素的数组。数组的长度是 count 和有序集合的基数(ZCARD)中的较小值。

如果使用负的 count 调用,行为会改变,允许命令多次返回同一个元素。在这种情况下,返回的元素数量是指定 count 的绝对值。

可选的 WITHSCORES 修饰符会改变回复,使其包含从有序集合中随机选择的元素的相应分数。

*示例

redis> ZADD dadi 1 uno 2 due 3 tre 4 quattro 5 cinque 6 sei
(integer) 6
redis> ZRANDMEMBER dadi
ERR Unknown or disabled command 'ZRANDMEMBER'
redis> ZRANDMEMBER dadi
ERR Unknown or disabled command 'ZRANDMEMBER'
redis> ZRANDMEMBER dadi -5 WITHSCORES
ERR Unknown or disabled command 'ZRANDMEMBER'
redis>

*传递 count 时的行为说明

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

  • 不返回重复的元素。
  • 如果 count 大于有序集合的基数,命令将只返回整个有序集合而不返回额外的元素。
  • 回复中元素的顺序不是真正的随机,因此如果需要,由客户端来打乱它们。

count 为负值时,行为如下:

  • 可能返回重复的元素。
  • 总是返回恰好 count 个元素,如果有序集合为空(键不存在),则返回空数组。
  • 回复中元素的顺序是真正的随机。

*返回值说明

RESP2:批量字符串回复: 没有额外的 count 参数时,命令返回一个随机选择的成员,当 key 不存在时返回 Nil reply数组回复: 当传递额外的 count 参数时,命令返回一个成员数组,当 key 不存在时返回空数组。如果使用 WITHSCORES 修饰符,回复是成员及其分数的列表。

RESP3:批量字符串回复: 没有额外的 count 参数时,命令返回一个随机选择的成员,当 key 不存在时返回 Null reply数组回复: 当传递额外的 count 参数时,命令返回一个成员数组,当 key 不存在时返回空数组。如果使用 WITHSCORES 修饰符,回复是成员及其分数的列表。