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/