Введение и установка
Представьте, что вы пишете backend небольшого интернет-магазина, состоящего из серверного приложения с бизнес-логикой и реляционной базы данных:
Первое время архитектура покрывает все ваши нужды: товары отображаются, заказы создаются быстро. Но со временем проект усложняется. Чаще всего это вызвано двумя факторами:
продукт требует новой бизнес-логики
рост пользовательской базы несет дополнительную нагрузку на сервера
В определенный момент реляционной системы управления базами данных (далее " РСУБД ") становится недостаточно и в архитектуре появляются дополнительные технологии для решения конкретных проблем.
Несколько примеров практических задач, когда РСУБД — неподходящее или неоптимальное решение:
отображение количества пользователей, находящихся на странице в режиме реального времени
ускорение времени ответа на тяжелый HTTP запрос
отложенная отправка писем/смс при оформлении заказа
отображение недавних покупок/просмотренных товаров на всех платформах
Для эффективного решения вышеописанных задач подходит open-source база данных Redis. Сегодня тысячи компаний, включая Instagram, Twitter, Uber, Airbnb, выбирают Redis за его скорость и масштабируемость.
Все основные варианты использования Redis будут рассмотрены по ходу этого курса. Сейчас достаточно знать главные особенности этого хранилища:
in-memory означает, что данные хранятся в оперативной памяти. Это накладывает ограничение на объем данных, который хранится в Redis, но дает более быстрое чтение и запись по сравнению с длительными хранилищами (NVME, SSD, HDD)
KV хранилище (key-value). В Redis нет таблиц, схем или каких-либо других абстракций для доступа к данным. Все данные записываются и получаются по ключам. Вследствие этого основные операции выполняются за O(1)
Установка
Несмотря на то, что вся практика для данного курса выполняется в нашей среде, это не отменяет необходимости умения работать с базой локально. Более того, эффективное обучение невозможно без повторения примеров из уроков в своей среде. Поэтому, перед тем, как начать, необходимо установить Redis локально.
Через пакетный менеджер вашей операционной системы
MacOS:
Linux:
Через Docker
Подключение
Локальное подключение
После установки Redis сервер нужно запускать вручную:
Такой способ подходит для академических целей, но не используется в производственных окружениях. Обычно Redis сервер запускается как демон (daemon):
Когда сервер запущен, можно попробовать подключиться к нему с помощью утилиты redis-cli
:
Чтобы удостовериться, что сервер работает корректно, достаточно запустить команду info
:
Подключение с Docker
В разделе установки через Docker Redis сервер запускается в контейнере с именем local-redis
. Используем это же имя для подключения:
Резюме
Redis — это очень быстрая key-value БД, хранящая все данные в оперативной памяти
В зависимости от задачи Redis может быть и базой данных, и кэшом, и даже брокером сообщений
Важно установить Redis локально и поработать с ним из терминала, так как взаимодействие из любого языка программирования происходит через такие же CLI-команды