- 用法
-
HRANDFIELD key [ count [ WITHVALUES ] ]
- 复杂度
- O(N),其中 N 是返回的字段数量
- 自
- 6.2.0
- ACL 类别
- @hash, @read, @slow
- 不返回重复字段。
- 如果
count
大于哈希中的字段数量,命令将只返回整个哈希,而不会返回额外字段。 - 回复中字段的顺序并非真正随机,因此如果需要,客户端应负责对其进行洗牌。
- 允许出现重复字段。
- 始终返回精确的
count
个字段,如果哈希为空(键不存在),则返回一个空数组。 - 回复中字段的顺序是真正随机的。
-
Nil 回复:如果键不存在
-
Bulk 字符串回复:当未使用
count
选项时,返回一个随机选定的字段 -
数组回复:当使用
count
选项时,返回包含count
个字段的列表;如果键不存在,则返回一个空数组。 -
数组回复:当同时使用
count
和WITHVALUES
时,返回字段及其值的列表。 -
Null 回复:如果键不存在
-
Bulk 字符串回复:当未使用
count
选项时,返回一个随机选定的字段 -
数组回复:当使用
count
选项时,返回包含count
个字段的列表;如果键不存在,则返回一个空数组。 -
数组回复:当同时使用
count
和WITHVALUES
时,返回字段及其值的列表。
当仅使用 key
参数调用时,从存储在 key
的哈希值中返回一个随机字段。
如果提供的 count
参数为正数,则返回一个包含不同字段的数组。数组的长度是 count
或哈希的字段数量 (HLEN
) 中较小的一个。
如果使用负数 count
调用,行为会改变,命令允许返回相同的字段多次。在这种情况下,返回的字段数量是指定的 count
的绝对值。
可选的 WITHVALUES
修饰符会改变回复,使其包含随机选定的哈希字段的相应值。
示例
127.0.0.1:6379> HSET coin heads obverse tails reverse edge null
(integer) 3
127.0.0.1:6379> HRANDFIELD coin
"heads"
127.0.0.1:6379> HRANDFIELD coin
"heads"
127.0.0.1:6379> HRANDFIELD coin -5 WITHVALUES
1) "heads"
2) "obverse"
3) "tails"
4) "reverse"
5) "edge"
6) "null"
7) "heads"
8) "obverse"
9) "edge"
10) "null"
传递 count 参数时的行为规范
当 count
参数为正值时,此命令的行为如下:
当 count
为负值时,行为改变如下:
RESP2 回复
以下任意一种
RESP3 回复
以下任意一种