Операции с хешами
В Managed Valkey все управление хешами выполняется командами Valkey. С полным списком команд Valkey вы можете ознакомиться в официальной документации Valkey.
Обратите внимание, что в Managed Valkey некоторые команды Valkey недоступны.
Проверить существование поля
Заголовок раздела «Проверить существование поля»Чтобы проверить существование поля в хеше, используйте команду HEXISTS.
Подключитесь к кластеру.
Переключитесь на нужную базу данных.
Узнайте имя ключа с помощью итеративного обхода.
Убедитесь, что значение ключа — хеш. Должно вернуться значение
hash.Выполните команду:
text HEXISTS <имя ключа> <поле>Команда вернет
1, если поле существует, или0, если ключ или поле не существует. Поле с пустой строкой в качестве значения будет считаться существующим.
Получить список полей
Заголовок раздела «Получить список полей»Чтобы получить список полей хеша, используйте команду HKEYS.
Подключитесь к кластеру.
Переключитесь на нужную базу данных.
Узнайте имя ключа с помощью итеративного обхода.
Убедитесь, что значение ключа — хеш. Должно вернуться значение
hash.Выполните команду:
text HKEYS <имя ключа>Команда вернет список имен полей. Если ключ не существует, команда вернет пустой список. Порядок элементов не гарантирован.
Получить список значений
Заголовок раздела «Получить список значений»Чтобы получить список значений полей хеша, используйте команду HVALS.
Подключитесь к кластеру.
Переключитесь на нужную базу данных.
Узнайте имя ключа с помощью итеративного обхода.
Убедитесь, что значение ключа — хеш. Должно вернуться значение
hash.Выполните команду:
text HVALS <имя ключа>Команда вернет список значений полей. Если ключ не существует, команда вернет пустой список. Порядок элементов не гарантирован.
Получить количество полей
Заголовок раздела «Получить количество полей»Чтобы получить количество полей хеша, используйте команду HLEN.
Подключитесь к кластеру.
Переключитесь на нужную базу данных.
Узнайте имя ключа с помощью итеративного обхода.
Убедитесь, что значение ключа — хеш. Должно вернуться значение
hash.Выполните команду:
text HLEN <имя ключа>Команда вернет количество полей хеша. Если ключ не существует, команда вернет
0.
Прочитать поля и их значения
Заголовок раздела «Прочитать поля и их значения»Чтобы прочитать поля хеша и их значения, используйте одну из команд:
- HGET — прочитать значение одного поля;
- HMGET — прочитать значения нескольких полей;
- HGETALL — прочитать все поля и значения.
Подключитесь к кластеру.
Переключитесь на нужную базу данных.
Узнайте имя ключа с помощью итеративного обхода.
Убедитесь, что значение ключа — хеш. Должно вернуться значение
hash.Узнайте имя поля.
Выполните нужную команду:
- HGET
- HMGET
- HGETALL
text HGET <имя ключа> <поле>Команда вернет значение поля. Если ключ или поле не существует, команда вернет
nil.
Записать поля и значения
Заголовок раздела «Записать поля и значения»Чтобы записать поля и значения в хеш, используйте команду HSET.
Подключитесь к кластеру.
Переключитесь на нужную базу данных.
Убедитесь, что значение ключа — хеш. Должно вернуться значение
hash.Выполните команду:
text HSET <имя ключа> <поле 1> <значение 1> [<поле 2> <значение 2> ...]Команда запишет указанные поля и значения. Если ключ не существует, команда создаст хеш. Значения существующих полей будут перезаписаны, остальные поля сохранятся.
В ответе вернется количество добавленных полей. Поля, значения которых были перезаписаны, не будут учтены. Если команда только обновит существующие поля, вернется
0.
Увеличить числовое значение поля
Заголовок раздела «Увеличить числовое значение поля»Чтобы увеличить числовое значение поля хеша, используйте одну из команд:
- HINCRBY — увеличить целое число;
- HINCRBYFLOAT — увеличить число с плавающей точкой.
Подключитесь к кластеру.
Переключитесь на нужную базу данных.
Убедитесь, что значение ключа — хеш. Должно вернуться значение
hash.Узнайте имя поля.
Выполните нужную команду:
- HINCRBY
- HINCRBYFLOAT
text HINCRBY <имя ключа> <поле> <шаг>Значение поля, шаг и результат должны быть целыми числами в диапазоне от
-9223372036854775808до9223372036854775807.В командах
<шаг>— число, на которое нужно изменить значение. Для уменьшения укажите отрицательный шаг.Команда вернет новое значение поля. Если поле не существует, перед операцией оно будет создано со значением
0. Если ключ не существует, будет создан и хеш. Если значение поля или шаг не подходят для выбранной команды либо результат выйдет за допустимые пределы, команда вернет ошибку.
Получить длину значения поля
Заголовок раздела «Получить длину значения поля»Чтобы получить длину значения поля хеша, используйте команду HSTRLEN.
Подключитесь к кластеру.
Переключитесь на нужную базу данных.
Узнайте имя ключа с помощью итеративного обхода.
Убедитесь, что значение ключа — хеш. Должно вернуться значение
hash.Узнайте имя поля.
Выполните команду:
text HSTRLEN <имя ключа> <поле>Команда вернет длину значения поля в байтах. Если ключ или поле не существует, вернется
0. Значение поля сохранится.
Получить случайные поля
Заголовок раздела «Получить случайные поля»Чтобы получить случайные поля хеша, используйте команду HRANDFIELD.
Подключитесь к кластеру.
Переключитесь на нужную базу данных.
Узнайте имя ключа с помощью итеративного обхода.
Убедитесь, что значение ключа — хеш. Должно вернуться значение
hash.Выполните команду:
text HRANDFIELD <имя ключа> [<количество> [WITHVALUES]]В команде:
- Положительное
<количество>— получить не более указанного числа разных полей. - Отрицательное
<количество>— получить число полей, равное модулю значения, с возможными повторениями. - Если
<количество>не указано, будет выведено имя одного случайного поля. WITHVALUES— получить поля вместе со значениями. Параметр можно указать только вместе с количеством.
Команда вернет имя поля или список полей, а с
WITHVALUES— поля вместе со значениями. При количестве0вернется пустой список. Если ключ не существует, без количества вернетсяnil, а с количеством — пустой список. Поля и значения хеша сохранятся.
Итеративно обойти поля
Заголовок раздела «Итеративно обойти поля»Чтобы итеративно обойти поля и значения хеша, используйте команду HSCAN.
Подключитесь к кластеру.
Переключитесь на нужную базу данных.
Узнайте имя ключа с помощью итеративного обхода.
Убедитесь, что значение ключа — хеш. Должно вернуться значение
hash.Начните обход с курсора
0:text HSCAN <имя ключа> 0 [MATCH <шаблон>] [COUNT <количество>]В команде:
MATCH <шаблон>— отобрать имена полей по шаблону.COUNT <количество>— задать положительное целое число как ориентир объема работы за вызов. Количество результатов может отличаться от указанного.
Команда вернет следующий курсор и пары полей и значений.
Подставляйте полученный курсор в следующий вызов. Используйте тот же ключ и условия отбора:
text HSCAN <имя ключа> <курсор> [MATCH <шаблон>] [COUNT <количество>]Обход завершится, когда команда вернет курсор
0. Если ключ не существует, сразу вернутся курсор0и пустой список.
Удалить поля
Заголовок раздела «Удалить поля»Чтобы удалить поля хеша, используйте команду HDEL.
Подключитесь к кластеру.
Переключитесь на нужную базу данных.
Узнайте имя ключа с помощью итеративного обхода.
Убедитесь, что значение ключа — хеш. Должно вернуться значение
hash.Узнайте имена полей.
Выполните команду:
text HDEL <имя ключа> <поле 1> [<поле 2> ...]Команда удалит указанные поля вместе со значениями и вернет количество удаленных полей. Несуществующие поля будут пропущены. Если ключ не существует, команда вернет
0. После удаления последнего поля ключ хеша будет удален.