Операции с хешами Redis

RedisRedisBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этой лабораторной работе вы изучите операции с Redis Hash (хеш), сосредоточившись на эффективных способах управления данными внутри хешей. Мы начнем с использования команды HMSET для одновременной установки нескольких полей в хеше. Затем вы узнаете, как извлекать определенные поля с помощью HMGET, увеличивать значения полей с помощью HINCRBY и проверять наличие поля в хеше с помощью HEXISTS. К концу этой лабораторной работы у вас будет четкое понимание того, как выполнять общие операции с хешами в Redis.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL redis(("Redis")) -.-> redis/RedisGroup(["Redis"]) redis/RedisGroup -.-> redis/access_cli("Connect Using CLI") redis/RedisGroup -.-> redis/store_string("Set String Value") redis/RedisGroup -.-> redis/fetch_string("Get String Value") redis/RedisGroup -.-> redis/increment_int("Increase Integer Value") subgraph Lab Skills redis/access_cli -.-> lab-552096{{"Операции с хешами Redis"}} redis/store_string -.-> lab-552096{{"Операции с хешами Redis"}} redis/fetch_string -.-> lab-552096{{"Операции с хешами Redis"}} redis/increment_int -.-> lab-552096{{"Операции с хешами Redis"}} end

Установка нескольких полей с помощью HMSET

В этом шаге мы изучим команду HMSET в Redis, которая позволяет устанавливать несколько полей хеша (hash) одновременно. Это более эффективно, чем установка каждого поля по отдельности с помощью команды HSET.

Сначала давайте подключимся к Redis-серверу с помощью команды redis-cli. Откройте терминал в вашем каталоге ~/project и введите:

redis-cli

Вы должны увидеть приглашение Redis: 127.0.0.1:6379>.

Теперь давайте используем команду HMSET. Синтаксис:

HMSET key field value [field value ...]

Где:

  • key - это имя хеша.
  • field - это имя поля внутри хеша.
  • value - это значение, которое будет присвоено полю.

Давайте создадим хеш с именем user:1001 и установим для него несколько полей: name, age и city.

HMSET user:1001 name "John Doe" age 30 city "New York"

Вы должны увидеть вывод OK, который указывает на то, что команда выполнена успешно.

Чтобы убедиться, что поля установлены правильно, вы можете использовать команду HGETALL. Однако в этой лабораторной работе мы сосредоточимся на проверке самих команд.

Вы также можете использовать HMSET для обновления существующих полей. Например, давайте изменим поле age на 31:

HMSET user:1001 age 31

Опять же, вы должны увидеть OK.

Не забудьте выйти из redis-cli, набрав exit. Это важно для того, чтобы команда была зарегистрирована для проверки.

exit

Получение нескольких полей с помощью HMGET

В этом шаге мы узнаем, как получить несколько полей из хеша (hash) Redis с помощью команды HMGET. Это полезно, когда вам нужны только определенные поля и вы не хотите получать весь хеш целиком.

Сначала подключитесь к Redis-серверу с помощью команды redis-cli:

redis-cli

Вспомните, что на предыдущем шаге мы создали хеш с именем user:1001 с полями name, age и city. Давайте получим поля name и age с помощью команды HMGET.

Синтаксис для HMGET:

HMGET key field [field ...]

Где:

  • key - это имя хеша.
  • field - это имя поля, которое вы хотите получить. Вы можете указать несколько полей.

Чтобы получить поля name и age из хеша user:1001, выполните следующую команду:

HMGET user:1001 name age

Вы должны увидеть вывод, похожий на этот:

1) "John Doe"
2) "31"

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

Если поле не существует в хеше, HMGET вернет nil для этого поля.

Не забудьте выйти из redis-cli, набрав exit.

exit

Увеличение значения поля с помощью HINCRBY

В этом шаге мы узнаем, как увеличить значение поля в хеше (hash) Redis с помощью команды HINCRBY. Эта команда особенно полезна для счетчиков и других числовых данных.

Сначала подключитесь к Redis-серверу с помощью команды redis-cli:

redis-cli

Мы продолжим использовать хеш user:1001, который мы создали на предыдущих шагах. Допустим, мы хотим отслеживать количество входов в систему для этого пользователя. Мы можем добавить поле logins в хеш и увеличивать его каждый раз, когда пользователь входит в систему.

Сначала давайте добавим поле logins и инициализируем его значением 0. Мы можем использовать HMSET для этого:

HMSET user:1001 logins 0

Вы должны увидеть OK. Теперь давайте используем HINCRBY для увеличения поля logins.

Синтаксис для HINCRBY:

HINCRBY key field increment

Где:

  • key - это имя хеша.
  • field - это имя поля, которое вы хотите увеличить.
  • increment - это значение, на которое вы хотите увеличить поле.

Чтобы увеличить поле logins на 1, выполните следующую команду:

HINCRBY user:1001 logins 1

Вы должны увидеть вывод (integer) 1, который является новым значением поля logins.

Давайте увеличим поле logins еще раз:

HINCRBY user:1001 logins 1

Вывод будет (integer) 2.

Вы также можете увеличивать на значения, отличные от 1.

Не забудьте выйти из redis-cli, набрав exit.

exit

Проверка существования поля с помощью HEXISTS

В этом шаге мы узнаем, как проверить, существует ли поле в хеше (hash) Redis с помощью команды HEXISTS. Это полезно для проверки наличия поля перед попыткой его получения или изменения.

Сначала подключитесь к Redis-серверу с помощью команды redis-cli:

redis-cli

Мы продолжим использовать хеш user:1001, который мы создали на предыдущих шагах. Мы знаем, что этот хеш имеет поля, такие как name, age, city и logins. Давайте используем HEXISTS, чтобы проверить, существует ли поле name.

Синтаксис для HEXISTS:

HEXISTS key field

Где:

  • key - это имя хеша.
  • field - это имя поля, которое вы хотите проверить.

Чтобы проверить, существует ли поле name в хеше user:1001, выполните следующую команду:

HEXISTS user:1001 name

Вы должны увидеть вывод (integer) 1, который указывает на то, что поле существует.

Теперь давайте проверим поле, которое не существует, например, country:

HEXISTS user:1001 country

Вы должны увидеть вывод (integer) 0, который указывает на то, что поле не существует.

Не забудьте выйти из redis-cli, набрав exit.

exit

Итог

В этой лабораторной работе вы узнали об операциях с хешами (hash) Redis. Вы начали с использования команды HMSET для эффективной установки нескольких полей в хеше. Затем вы изучили, как извлекать определенные поля с помощью HMGET, увеличивать значения полей с помощью HINCRBY и проверять наличие поля в хеше с помощью HEXISTS. Эти команды обеспечивают основу для эффективного управления данными в хешах Redis.