HRANDFIELD
Syntax
HRANDFIELD key [count [WITHVALUES]]
- Available since:
- 6.2.0
- Time complexity:
- O(N) where N is the number of fields returned
- ACL categories:
-
@read
,@hash
,@slow
,
当仅使用key
参数调用时,返回存储在key
处的哈希值中的一个随机字段。
如果提供的count
参数为正数,则返回一个不同字段的数组。
数组的长度是count
或哈希的字段数(HLEN
)中的较小者。
如果使用负数的count
调用,行为会发生变化,命令允许返回相同的字段多次。
在这种情况下,返回的字段数量是指定count
的绝对值。
可选的 WITHVALUES
修饰符会改变回复,使其包含随机选择的哈希字段的相应值。
示例
当传递count时的行为规范
当count
参数为正值时,此命令的行为如下:
- 不返回重复字段。
- 如果
count
大于哈希中的字段数量,该命令将仅返回整个哈希,而不包含额外的字段。 - 回复中字段的顺序并不是真正随机的,因此如果需要,客户端需要自行打乱它们。
当count
为负值时,行为变化如下:
- 可以重复字段。
- 总是返回恰好
count
个字段,如果哈希为空(不存在的键),则返回一个空数组。 - 回复中字段的顺序是真正随机的。
RESP2 回复
以下任意一项:
- Nil reply: 如果键不存在
- Bulk string reply: 当未使用
count
选项时,随机选择的单个字段 - Array reply: 当使用
count
选项时,包含count
字段的列表,如果键不存在,则为空数组。 - Array reply: 当同时使用了
count
和WITHVALUES
时,返回字段及其值的列表。
RESP3 回复
以下任意一项:
- Null reply: 如果键不存在
- Bulk string reply: 当未使用
count
选项时,随机选择的单个字段 - Array reply: 当使用
count
选项时,包含count
字段的列表,如果键不存在,则为空数组。 - Array reply: 当使用了
count
和WITHVALUES
时,返回字段及其值的列表。