Введение
В этой лабораторной работе вы изучите основные структуры данных Redis и способы взаимодействия с ними с помощью инструмента командной строки redis-cli. Лабораторная работа ориентирована на практические упражнения, которые помогут вам понять, как хранить и извлекать данные в Redis.
Вы начнете с работы со Strings (строками), изучая, как устанавливать, получать, проверять наличие и удалять строковые значения. Затем вы перейдете к Lists (спискам), используя такие команды, как LPUSH и LRANGE. Далее вы будете управлять Sets (множествами) с помощью SADD и SMEMBERS. Наконец, вы изучите Hashes (хеши) с помощью HSET и HGET. Этот практический опыт обеспечит прочную основу для использования Redis в различных приложениях.
Работа со строками (Strings) для простых данных
В этом шаге мы рассмотрим, как использовать Redis для хранения и извлечения простых строковых данных. Redis часто используется в качестве кэша или простого хранилища key-value (ключ-значение), и строки являются самым базовым типом данных, который он предлагает.
Сначала давайте подключимся к серверу Redis с помощью инструмента командной строки redis-cli. Откройте терминал в LabEx VM (виртуальной машине). Вы должны находиться в каталоге ~/project.
Введите следующую команду для подключения к серверу Redis:
redis-cli
Вы должны увидеть приглашение, которое выглядит следующим образом:
127.0.0.1:6379>
Это означает, что вы подключены к серверу Redis.
Теперь давайте установим простое строковое значение. Мы будем использовать команду SET. Команда SET принимает два аргумента: ключ и значение. Давайте установим ключ с именем mykey со значением Hello Redis:
SET mykey "Hello Redis"
Вы должны увидеть следующий вывод:
OK
Это означает, что значение было успешно установлено.
Теперь давайте получим значение с помощью команды GET. Команда GET принимает один аргумент: ключ. Давайте получим значение mykey:
GET mykey
Вы должны увидеть следующий вывод:
"Hello Redis"
Это подтверждает, что мы успешно сохранили и извлекли строковое значение в Redis.
Давайте попробуем другой пример. На этот раз давайте сохраним число как строку.
SET counter 100
GET counter
Вы должны увидеть:
"100"
Redis рассматривает это как строку, даже если она представляет собой число.
Вы также можете использовать команду EXISTS для проверки существования ключа.
EXISTS mykey
Вы должны увидеть:
(integer) 1
Это указывает на то, что ключ mykey существует. Если ключ не существует, команда вернет (integer) 0.
Наконец, давайте удалим ключ с помощью команды DEL.
DEL mykey
Вы должны увидеть:
(integer) 1
Это указывает на то, что ключ mykey был успешно удален.
Теперь, если вы попытаетесь получить значение mykey снова:
GET mykey
Вы должны увидеть:
(nil)
Это подтверждает, что ключ был удален.
Не забудьте выйти из redis-cli, чтобы ваши команды были зарегистрированы. Введите:
exit
Это вернет вас в обычное приглашение терминала.
Использование списков (Lists) с командами LPUSH и LRANGE
В этом шаге мы рассмотрим, как использовать списки Redis для хранения и извлечения упорядоченных коллекций данных. Списки Redis реализованы как связанные списки (linked lists), что делает их эффективными для добавления и удаления элементов из начала или конца списка. Мы сосредоточимся на командах LPUSH и LRANGE.
Мы продолжим использовать инструмент командной строки redis-cli. Если вы еще не подключены, откройте терминал в LabEx VM (виртуальной машине) и введите:
redis-cli
Теперь давайте создадим список и добавим в него несколько элементов с помощью команды LPUSH. LPUSH добавляет элементы слева (в начало) списка. Команда LPUSH принимает два или более аргументов: ключ списка и значение(я) для добавления. Давайте создадим список с именем mylist и добавим значения item1, item2 и item3:
LPUSH mylist item1
Вы должны увидеть следующий вывод:
(integer) 1
Это означает, что один элемент был добавлен в список. Возвращаемое значение LPUSH - это длина списка после операции.
Теперь давайте добавим остальные элементы:
LPUSH mylist item2
(integer) 2
LPUSH mylist item3
(integer) 3
Теперь давайте получим элементы списка с помощью команды LRANGE. LRANGE возвращает диапазон элементов из списка. Команда LRANGE принимает три аргумента: ключ списка, начальный индекс и конечный индекс. Индексы основаны на нулевой базе, поэтому первый элемент находится по индексу 0. Чтобы получить все элементы списка, мы можем использовать начальный индекс 0 и конечный индекс -1.
LRANGE mylist 0 -1
Вы должны увидеть следующий вывод:
1) "item3"
2) "item2"
3) "item1"
Обратите внимание, что элементы возвращаются в обратном порядке, в котором мы их добавили, потому что LPUSH добавляет элементы в начало списка.
Давайте добавим еще несколько элементов в список:
LPUSH mylist item4
LPUSH mylist item5
Теперь давайте получим первые 3 элемента списка (индексы от 0 до 2):
LRANGE mylist 0 2
Вы должны увидеть:
1) "item5"
2) "item4"
3) "item3"
Вы также можете использовать отрицательные индексы для доступа к элементам с конца списка. Например, чтобы получить последний элемент списка, вы можете использовать индекс -1:
LRANGE mylist -1 -1
Вы должны увидеть:
1) "item1"
Не забудьте выйти из redis-cli, чтобы ваши команды были зарегистрированы. Введите:
exit
Это вернет вас в обычное приглашение терминала.
Управление множествами (Sets) с помощью команд SADD и SMEMBERS
В этом шаге мы рассмотрим, как использовать множества Redis для хранения и управления неупорядоченными коллекциями уникальных элементов. Множества Redis полезны для таких задач, как отслеживание уникальных посетителей, хранение тегов или управление отношениями между объектами. Мы сосредоточимся на командах SADD и SMEMBERS.
Мы продолжим использовать инструмент командной строки redis-cli. Если вы еще не подключены, откройте терминал в LabEx VM (виртуальной машине) и введите:
redis-cli
Теперь давайте создадим множество и добавим в него несколько элементов с помощью команды SADD. SADD добавляет один или несколько элементов в множество. Команда SADD принимает два или более аргументов: ключ множества и элемент(ы) для добавления. Давайте создадим множество с именем myset и добавим элементы member1, member2 и member3:
SADD myset member1
Вы должны увидеть следующий вывод:
(integer) 1
Это означает, что один элемент был добавлен в множество. Возвращаемое значение SADD - это количество элементов, которые были добавлены в множество (исключая элементы, которые уже присутствовали).
Теперь давайте добавим остальные элементы:
SADD myset member2
(integer) 1
SADD myset member3
(integer) 1
Теперь давайте получим элементы множества с помощью команды SMEMBERS. SMEMBERS возвращает все элементы множества. Команда SMEMBERS принимает один аргумент: ключ множества.
SMEMBERS myset
Вы должны увидеть следующий вывод (порядок элементов может отличаться, так как множества неупорядочены):
1) "member3"
2) "member2"
3) "member1"
Давайте попробуем добавить дубликат элемента в множество:
SADD myset member1
Вы должны увидеть:
(integer) 0
Это указывает на то, что новые элементы не были добавлены, потому что member1 уже был в множестве.
Давайте добавим еще несколько элементов в множество:
SADD myset member4
SADD myset member5
Теперь давайте получим все элементы снова:
SMEMBERS myset
Вы должны увидеть что-то вроде:
1) "member5"
2) "member4"
3) "member3"
4) "member2"
5) "member1"
Порядок может быть другим.
Не забудьте выйти из redis-cli, чтобы ваши команды были зарегистрированы. Введите:
exit
Это вернет вас в обычное приглашение терминала.
Изучение хешей (Hashes) с помощью команд HSET и HGET
В этом шаге мы рассмотрим, как использовать хеши Redis для хранения и извлечения коллекций пар поле-значение. Хеши Redis полезны для представления объектов с несколькими атрибутами. Мы сосредоточимся на командах HSET и HGET.
Мы продолжим использовать инструмент командной строки redis-cli. Если вы еще не подключены, откройте терминал в LabEx VM (виртуальной машине) и введите:
redis-cli
Теперь давайте создадим хеш и добавим в него несколько полей и значений с помощью команды HSET. HSET устанавливает значение поля в хеше. Команда HSET принимает три аргумента: ключ хеша, поле и значение. Давайте создадим хеш с именем myhash и установим поле field1 в значение value1:
HSET myhash field1 value1
Вы должны увидеть следующий вывод:
(integer) 1
Это означает, что новое поле было добавлено в хеш. Возвращаемое значение HSET равно 1, если поле является новым в хеше, и 0, если поле уже существует и значение было обновлено.
Теперь давайте добавим другое поле:
HSET myhash field2 value2
(integer) 1
Теперь давайте получим значение поля с помощью команды HGET. HGET получает значение поля в хеше. Команда HGET принимает два аргумента: ключ хеша и поле. Давайте получим значение field1 в myhash:
HGET myhash field1
Вы должны увидеть следующий вывод:
"value1"
Это подтверждает, что мы успешно сохранили и извлекли пару поле-значение в хеше.
Давайте попробуем обновить значение существующего поля:
HSET myhash field1 newvalue1
Вы должны увидеть:
(integer) 0
Это указывает на то, что поле уже существовало, и его значение было обновлено.
Теперь давайте получим значение field1 снова:
HGET myhash field1
Вы должны увидеть:
"newvalue1"
Это подтверждает, что значение было обновлено.
Давайте добавим еще несколько полей в хеш:
HSET myhash field3 value3
HSET myhash field4 value4
Не забудьте выйти из redis-cli, чтобы ваши команды были зарегистрированы. Введите:
exit
Это вернет вас в обычное приглашение терминала.
Резюме
В этой лабораторной работе мы изучили основные структуры данных Redis, начиная со строк (strings). Мы узнали, как подключиться к серверу Redis с помощью redis-cli, а затем использовали команду SET для хранения строковых значений, связанных с ключами. Затем мы извлекли эти значения с помощью команды GET. Мы также увидели, как Redis обрабатывает числа, хранящиеся в виде строк.
Кроме того, мы научились создавать и манипулировать Lists (списками) с помощью LPUSH и LRANGE, управлять Sets (множествами) с помощью SADD и SMEMBERS, и изучать Hashes (хеши) с помощью HSET и HGET. Эти команды позволяют хранить и извлекать различные типы данных в Redis, что делает его универсальным инструментом для различных приложений. Не забывайте выходить из redis-cli после каждого шага, чтобы ваши команды были зарегистрированы для проверки.


