*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) 6redis> 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'
*传递 count 时的行为说明
当 count 参数为正值时,此命令的行为如下:
- 不返回重复的元素。
- 如果
count大于有序集合的基数,命令将只返回整个有序集合而不返回额外的元素。 - 回复中元素的顺序不是真正的随机,因此如果需要,由客户端来打乱它们。
当 count 为负值时,行为如下:
- 可能返回重复的元素。
- 总是返回恰好
count个元素,如果有序集合为空(键不存在),则返回空数组。 - 回复中元素的顺序是真正的随机。
*返回值说明
RESP2:批量字符串回复: 没有额外的 count 参数时,命令返回一个随机选择的成员,当 key 不存在时返回 Nil reply。 数组回复: 当传递额外的 count 参数时,命令返回一个成员数组,当 key 不存在时返回空数组。如果使用 WITHSCORES 修饰符,回复是成员及其分数的列表。
RESP3:批量字符串回复: 没有额外的 count 参数时,命令返回一个随机选择的成员,当 key 不存在时返回 Null reply。 数组回复: 当传递额外的 count 参数时,命令返回一个成员数组,当 key 不存在时返回空数组。如果使用 WITHSCORES 修饰符,回复是成员及其分数的列表。