Spec-Zone.ru › Redis

HRANDFIELD

HRANDFIELD
Синтаксис
HRANDFIELD key [count [WITHVALUES]]
Доступно с версии:
6.2.0
Сложность по времени:
O(N), где N — количество возвращаемых полей
Категории ACL:
@read, @hash, @slow,

При вызове только с аргументом key, возвращает случайное поле из хеш-значения, хранящегося в key.

Если переданный аргумент count положителен, возвращает массив различных полей. Длина массива — либо count, либо количество полей в хеше (HLEN), что меньше.

Если передан отрицательный аргумент count, поведение меняется, и команда может возвращать одно и то же поле несколько раз. В этом случае количество возвращаемых полей равно абсолютному значению указанного count.

Необязательный модификатор WITHVALUES изменяет ответ, включая соответствующие значения случайно выбранных полей хеша.

Возврат

Ответ типа Bulk String: без дополнительного аргумента count, команда возвращает ответ Bulk Reply со случайно выбранным полем или nil, если key не существует.

Ответ типа массив: при передаче дополнительного аргумента count, команда возвращает массив полей или пустой массив, если key не существует. Если используется модификатор WITHVALUES, ответ представляет собой список полей и их значений из хеша.

Примеры

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

Описание поведения при передаче count

Когда аргумент count имеет положительное значение, эта команда ведет себя следующим образом:

  • Не возвращаются повторяющиеся поля.
  • Если count больше, чем количество полей в хеше, команда вернёт весь хеш без дополнительных полей.
  • Порядок полей в ответе не является истинно случайным, поэтому клиенту необходимо перетасовать их, если это необходимо.

Когда count имеет отрицательное значение, поведение изменяется следующим образом:

  • Возможны повторяющиеся поля.
  • Возвращается ровно count полей или пустой массив, если хеш пуст (ключ не существует).
  • Порядок полей в ответе является истинно случайным.

© 2006–2022 Salvatore Sanfilippo
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
https://redis.io/commands/hrandfield/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API