HRANDFIELD

语法
HRANDFIELD key [count [WITHVALUES]]
可用版本
Redis Open Source 6.2.0
时间复杂度
O(N),其中 N 是返回的字段数量
ACL 类别
@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 回复:如果键不存在
  • Bulk string 回复:未使用 `count` 选项时,一个随机选择的单个字段
  • Array 回复:使用 `count` 选项时,一个包含 `count` 个字段的列表;如果键不存在,则为空数组。
  • Array 回复:当 `count` 和 `WITHVALUES` 都使用时,一个包含字段及其值的列表。

RESP3 回复

以下任意一种

  • Null 回复:如果键不存在
  • Bulk string 回复:未使用 `count` 选项时,一个随机选择的单个字段
  • Array 回复:使用 `count` 选项时,一个包含 `count` 个字段的列表;如果键不存在,则为空数组。
  • Array 回复:当 `count` 和 `WITHVALUES` 都使用时,一个包含字段及其值的列表。

评价本页
返回顶部 ↑