Как использовать облачные базы данных Redis - Академия Selectel

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

Ульяна Малышева Ульяна Малышева Технический редактор 21 октября 2021

Изображение записи

Это первая нереляционная СУБД в платформенных сервисах Selectel. Разбираемся, чем она хороша и кому подойдет.

Redis, или Remote Dictionary Server, — это резидентная база данных типа «ключ-значение» с открытым исходным кодом. Она занимает шестое место в рейтинге самых популярных баз данных, по версии DB-Engines

Главное отличие Redis от «классических» MySQL или PostgreSQL — в том, что эта СУБД хранит данные в оперативной памяти и работает быстрее. Размер базы ограничен объемом ОЗУ.

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

Данные в Redis хранятся по упрощенной модели «ключ-значение». Ключ служит уникальным идентификатором, через который можно получить доступ к вводу и обновлению данных.

Допустим, у нас есть база типа «ключ-значение», хранящая счетчик просмотров видео. Ключом будет цифровой идентификатор этого видео, а значением — количество просмотров. Обращаясь в базу, мы как бы говорим ей: «Дай нам число просмотров к видео #12345» или «Увеличь значение просмотров видео #12345 на единицу» .

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

Кому подойдет Redis

СУБД создана для задач, где нужен быстрый доступ к данным в режиме реального времени. Обычно эту базу данных используют как кэш-прослойку между «внешним миром» и более медленной реляционной базой. То есть у компании есть надежная PostgreSQL, MySQL или Oracle, но часть часто запрашиваемых данных выносится в Redis, чтобы повысить скорость работы пользователя с сервисом или приложением.

Нередко СУБД используют в разработке финансовых и рекламных сервисов, игровых приложений, IoT, но сферы могут быть самыми разными. Основная задача — быстрый доступ к данным.

Кому не подойдет Redis

Систему лучше не использовать как единственное хранилище данных. Любая инфраструктурная проблема — сетевая недоступность, падение системы, достижение лимита памяти — приведет к потере информации. Если это критично для бизнеса, нужно использовать Redis в связке с реляционными базами данных. Также в этой СУБД не получится работать с большими данными из-за лимитов памяти. 

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

Кэширование данных 

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

Добавление чатов, лент новостей и контроля очереди в реальном времени

Редакция онлайн-издания Y хочет повысить вовлеченность читателей и решает добавить на сайт площадку для дискуссий и живой чат. Чтобы выдержать нагрузку, обеспечить быстрый обмен сообщениями и блокировать нежелательные месседжи, администратор сайта выбрал Redis. Теперь он может создавать упрощенные очереди сообщений и ленты комментариев.

Хранение пользовательских сессий 

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

Ведение таблицы лидеров в играх

Компания N запустила спецпроект — мобильную игру с турнирной таблицей. Победителям обещали новый iPhone от спонсора. Рейтинг лидеров, которые на текущем этапе набрали больше всех очков, должен обновляться ежесекундно. Для этого разработчики выбрали структуру данных Redis Sorted Set — она обеспечивает уникальность элементов и сортировку списка по результатам.

Использование моделей машинного обучения

Стартап S развивает сервис по подбору съемного жилья. В системе рекомендаций учитываются данные о поведении пользователя: что он добавлял в закладки, куда кликал, его профиль, пожелания и прочее. Чтобы клиент мог быстро получать персонализированную подборку, разработчики выбрали Redis, обеспечивающий работу с алгоритмами машинного обучения. 

Это лишь часть вариантов применения Redis. Больше кейсов можно найти на официальном сайте Redis Labs в разделе Redis Best Practices


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

Облачные базы данных Redis можно использовать в связке с выделенными и облачными серверами, с кластерами Kubernetes и облачными базами данных MySQL и PostgreSQL.

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