Больше не нужно искать работу мечты — присоединяйтесь к команде Клауда

Использование облачных баз данных Redis

Команда Timeweb Cloud
Команда Timeweb Cloud
Наши инженеры, технические писатели, редакторы и маркетологи
15 февраля 2022 г.
512
5 минут чтения
Средний рейтинг статьи: 5

Redis — это хранилище данных в оперативной памяти. Имеет открытый исходный код, а используется как база данных, кэш и брокер сообщений.

Хранилище организовано по модели «ключ – значение». Ключи не повторяются, через них вы получаете доступ к информации. Например, записан набор имен пользователей. Ключ в этом случае — идентификационный номер пользователя, а значение — имя. По ключу можно получить имя, изменить его или удалить.

Однако использование Redis не ограничивается только хранением информации. У этого инструмента есть много других полезных сценариев применения. Давайте разберемся, что такое Redis и зачем он нужен

Использование Облачных Баз Данных Redis (1)

Структуры данных

Redis предлагает строки, хэши, списки, множества, в том числе упорядоченные, битовые карты, гиперлоги, геопространственные индексы и потоки. Для каждой структуры данных доступны специальные команды, позволяющие эффективно выполнять многотипные операции.

Структуры данных предоставляют гибкие способы моделирования данных для многих вариантов использования в современных приложениях. Они позволяют разрабатывать элегантные решения для хранения, доступа и использования данных, а также обеспечивают мощную и быструю обработку в памяти.

Плюсы и минусы Redis

Главный плюс Redis БД — быстрая обработка запросов. Это стало возможным благодаря выполнению всех операций в оперативной памяти. Высокая скорость отклика делает базу данных Redis подходящей для выполнения большого количества операций над небольшим объемом данных. Объем этот ограничен размерами оперативной памяти.

Среди других плюсов:

  • Большой набор поддерживаемых структур данных.
  • Простая установка и отсутствие зависимостей.
  • Открытый исходный код и активное сообщество.
  • Гибкость и масштабируемость.

Платить за высокую производительность и удобство приходится высоким риском потери данных. Чтобы снизить вероятность таких последствий, Redis сохраняет копии на жестком диске. Это помогает не потерять информацию в штатных ситуациях, например при перезагрузке сервера. Но в аварийных случаях риски все равно остаются высокими.

Бэкап представляет собой бинарный файл с дефолтным именем dump.rdb. Для безопасности можно автоматически делать его резервную копию и отправлять ее на облако, например на timeweb.cloud. Чтобы восстановить данные из бэкапа, нужно перенести на сервер резервный файл с расширением *.rdb.

Так как это нереляционная база данных, язык запросов SQL здесь не работает. В качестве альтернативы используют Lua-скрипты. Это требует от разработчиков дополнительного обучения. 

Для большинства языков программирования существуют библиотеки для работы с Redis.

Кому подходит Redis

Redis подходит для ситуаций, когда требуется очень быстрый доступ. Чаще всего он становится кэширующей прослойкой, в которую выносят часть запрашиваемых данных. Это могут быть сохраненные пользовательские сессии, лента комментариев, изображения с резервными копиями в других БД.

Из-за особенностей работы систему не используют в качестве единственного хранилища. Часто разработчики настраивают связку Redis MySQL или Redis PostgreSQL. При таком подходе инфраструктурные проблемы и аварии не приводят к потере данных. К тому же размер базы данных PostgreSQL или MySQL может быть намного больше — сказываются ограничения на объем оперативной памяти у Редис.

Сценарии использования

Рассмотрим наиболее распространенные сценарии, в которых нереляционная база данных приносит пользу.

Кэширование

Один из самых популярных сценариев — кэширование данных, которые наиболее востребованы пользователями. Это помогает снизить нагрузку на основную БД и ускорить доступ.

Кэшировать можно фрагменты HTML и целые страницы. Например, в онлайн-магазинах Redis используют для того, чтобы сохранять добавленные позиции из каталога в корзине, даже если пользователь закрыл вкладку или отключил интернет.

Работа с данными

Многое зависит от того, какая структура данных используются. Например, с помощью списков соцсети формируют потоки сообщений на главной странице или в новостях. Можно также применять списки для создания RSS-каналов, через которые подписчики будут получать обновления из интересующих источников. 

Еще один вариант использования списков — формирование рейтингов и таблиц лидеров, например с сортировкой по количеству лайков. Для ранжирования результатов применяются также упорядоченные множества. Их главный плюс в том, что у каждого члена множества есть поле с уникальным номером. Это помогает строить таблицы, в которых могут быть одинаковые значения в разных строках. Существует даже специальный набор команд, которые используются для построения рейтингов.

Кроме сортировки Redis подходит и для фильтрации. Например, с помощью множеств добавляют список запрещенных слов, который становится основой фильтра ненормативной лексики.

Управление данными пользователей

При аутентификации пользователей выполняется много запросов, при этом сам объем данных небольшой. Это идеальные условия для применения Redis. Но аутентификацией дело не ограничивается. 

Приложения могут использовать один хэш для работы с полями профиля: именем, паролем, телефоном, email. Соцсети применяют Redis для того, чтобы с помощью хэшей связать контент пользователя с профилем. Например, в Instagram это фотографии, видео и сторис, опубликованные в одном аккаунте, в Twitter — список твитов и так далее.

Управление очередями сообщений

Еще одно популярное направление — управление очередями сообщений между компонентами приложения. Redis помогает распределять ресурсы, управляя размерами очередей с учетом скорости поступления и отправки пакетов.

 

15 февраля 2022 г.
512
5 минут чтения
Средний рейтинг статьи: 5
Пока нет комментариев