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 修饰符会改变回复,使其包含随机选择的哈希字段的相应值。

示例

HSET coin heads obverse tails reverse edge null HRANDFIELD coin HRANDFIELD coin HRANDFIELD coin -5 WITHVALUES

当传递count时的行为规范

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

  • 不返回重复字段。
  • 如果 count 大于哈希中的字段数量,该命令将仅返回整个哈希,而不包含额外的字段。
  • 回复中字段的顺序并不是真正随机的,因此如果需要,客户端需要自行打乱它们。

count为负值时,行为变化如下:

  • 可以重复字段。
  • 总是返回恰好 count 个字段,如果哈希为空(不存在的键),则返回一个空数组。
  • 回复中字段的顺序是真正随机的。

RESP2 回复

以下任意一项:

  • Nil reply: 如果键不存在
  • Bulk string reply: 当未使用count选项时,随机选择的单个字段
  • Array reply: 当使用count选项时,包含count字段的列表,如果键不存在,则为空数组。
  • Array reply: 当同时使用了countWITHVALUES时,返回字段及其值的列表。

RESP3 回复

以下任意一项:

  • Null reply: 如果键不存在
  • Bulk string reply: 当未使用count选项时,随机选择的单个字段
  • Array reply: 当使用count选项时,包含count字段的列表,如果键不存在,则为空数组。
  • Array reply: 当使用了countWITHVALUES时,返回字段及其值的列表。

RATE THIS PAGE
Back to top ↑