Введение
В этой лабораторной работе вы изучите основные структуры данных Redis и научитесь взаимодействовать с ними с помощью инструмента командной строки redis-cli. Лабораторная работа сосредоточена на практических упражнениях, которые помогут вам понять, как сохранять и извлекать данные в Redis.
Вы начнете с работы со строками, узнав, как устанавливать, получать, проверять наличие и удалять строковые значения. Затем вы перейдете к спискам, используя такие команды, как LPUSH и LRANGE. После этого вы научитесь управлять множествами с помощью SADD и SMEMBERS. Наконец, вы изучите хеши, используя HSET и HGET. Этот практический опыт создаст прочный фундамент для использования Redis в различных приложениях.
Работа со строками для простых данных
На этом этапе мы рассмотрим, как использовать Redis для хранения и извлечения простых строковых данных. Redis часто используется в качестве кэша или простого хранилища «ключ-значение», а строки являются самым базовым типом данных, который он предлагает.
Сначала давайте подключимся к серверу Redis с помощью инструмента командной строки redis-cli. Откройте терминал в виртуальной машине LabEx. Вы уже должны находиться в директории ~/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
Это вернет вас к обычному приглашению терминала.
Использование списков с командами LPUSH и LRANGE
На этом этапе мы рассмотрим, как использовать списки Redis для хранения и извлечения упорядоченных коллекций данных. Списки Redis реализованы как связные списки, что делает их эффективными для добавления и удаления элементов из начала или конца списка. Мы сосредоточимся на командах LPUSH и LRANGE.
Мы продолжим использовать инструмент командной строки redis-cli. Если вы еще не подключены, откройте терминал в виртуальной машине LabEx и введите:
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
Это вернет вас к обычному приглашению терминала.
Управление множествами с помощью SADD и SMEMBERS
На этом этапе мы рассмотрим, как использовать множества Redis для хранения и управления неупорядоченными коллекциями уникальных элементов. Множества Redis полезны для таких задач, как отслеживание уникальных посетителей, хранение тегов или управление связями между объектами. Мы сосредоточимся на командах SADD и SMEMBERS.
Мы продолжим использовать инструмент командной строки redis-cli. Если вы еще не подключены, откройте терминал в виртуальной машине LabEx и введите:
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
Это вернет вас к обычному приглашению терминала.
Изучение хешей с помощью HSET и HGET
На этом этапе мы рассмотрим, как использовать хеши Redis для хранения и извлечения коллекций пар «поле-значение». Хеши Redis полезны для представления объектов с несколькими атрибутами. Мы сосредоточимся на командах HSET и HGET.
Мы продолжим использовать инструмент командной строки redis-cli. Если вы еще не подключены, откройте терминал в виртуальной машине LabEx и введите:
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, начав со строк. Мы узнали, как подключиться к серверу Redis с помощью redis-cli, а затем использовали команду SET для сохранения строковых значений, связанных с ключами. Затем мы извлекли эти значения с помощью команды GET. Мы также увидели, как Redis обрабатывает числа, сохраненные в виде строк.
Кроме того, мы научились создавать списки и управлять ими с помощью LPUSH и LRANGE, работать с множествами с помощью SADD и SMEMBERS, а также изучили хеши с помощью HSET и HGET. Эти команды позволяют сохранять и извлекать различные типы данных в Redis, что делает его универсальным инструментом для самых разных приложений. Не забывайте выходить из redis-cli после каждого шага, чтобы ваши команды были зафиксированы для проверки.


