Redis

Скорость работы «облачных» сервисов в значительной степени влияет на их востребованность для бизнеса. Чем крупнее компания, тем выше требования к производительности (к базе данных подключается большое количество пользователей). Одно из решений – использование высокоскоростной системой управления базами данных под названием Redis. Она поставляется с открытым исходным кодом (лицензия BSD), поэтому базу данных легко адаптировать практически к любым проектам.

Что представляет собой Redis

Термин «Redis» является акронимом от английской фразы Remote Dictionary Server. Эта база данных отличается простым доступом к встроенным функциям. Ее ядро написано на оптимизированном коде C и поддерживает несколько языков разработки. Программистам предоставляется описание по протоколу взаимодействия RESP (Redis Serialization Protocol) и полный перечень доступных команд на сайте Redis.

Далеко не все промышленные системы управления базами данных (СУБД) способны «похвастаться» этим, обычно написание драйверов к БД относится к долгосрочным, сложным задачам. К тому же для распространенных платформ уже разработаны «обертки». Например, для Java есть клиент Jedis. Его достаточно инсталлировать на сервер и пользоваться привычной средой JS. То же относится к другим языкам программирования – С, C++, JavaScript, Perl, PHP, Ruby, Go, Swift, с десяток других.

Как функционирует Redis

Сервис управления базами данных Redis функционирует со структурами вида «ключ-значение». Он функционирует с большим перечнем POSIX-платформ вроде Linux, BSD, Mac OS X без надстроек. Существуют неофициальные сборки с поддержкой Windows. Информация в Redis сохраняется в формате словаря. В отличие от иных видов хранилищ он не ограничен строкой (встроена поддержка строк, списков, хеш-таблиц, упорядоченных множеств).

Высокая производительность, надежность обеспечивается:

  •   нахождением значений в оперативной памяти;
  •   постоянным мониторингом при помощи Redis Sentinel;
  •   автоматическим восстановлением нерабочих узлов.

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

Области применения Redis

Первое направление, где оправдана инсталляция баз данных на Redis, это кэширование запросов, долговременных сессий, веб-страниц, часто используемых объектов (файлы, метаданные, картинки, медиа). Система совместима с другими СУБД, к примеру, MySQL, на базе которой работают сайты. Так, например, с помощью Redis ускоряют загрузку стандартных страниц WordPress.

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

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

управление сессиями пользователей, учетными данными, индивидуальными настройками

Безопасность

обнаружение мошеннических действий с финансовыми операциями, в играх

Ускорение

обработка большого количества запросов без снижения производительности

Обмен данными

работа сервисов в режиме Real Time с быстрым проведением транзакций

Также БД Redis подходит для разработки высокопроизводительных чатов, лент комментариев, для публикации новостных постов в соц. сетях, комплексов взаимодействия серверов. Транзакции обрабатываются в ней как отдельно, так и пакетами, с возможностью параллельного запуска. Примеры реализации: Tumblr, Skype, Instagram, StackOverflow, Flickr.

В базе данных хранится информация о текущих пользователях, коды капчи, различных флагах, данные автозаполнения поисковых запросов. По сравнению с Memcached в Redis более длинные ключи, есть функция репликации, восстановление кэша с диска. Также СУБД применяется в работе сервисов вроде «сокращалок ссылок», веб-форумов типа «имиджборд».

Особенности внедрения Redis

Подготовка к разработке продуктов на базе базы данных Redis включает стандартные элементы. Их перечень: аудит текущей ИТ-инфраструктуры, пожелания заказчика по новым функциям, анализ возможности их получения на выбранной платформе. Только после утвердительного ответа работа переводится на уровень разработки технического задания (ТЗ), составления и согласования сметы.

Этапы внедрения Redis зависят от выбранного решения:

Выбор сервера

установка на собственный сервер, подключение к облачным сервисам

Адаптация

адаптации платформы с прикладными программами на других языках программирования

Функционал

написание дополнительных модулей, расширяющих стандартный функционал

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

Найдем лучшее решение для вашего проекта

Воспользоваться

Решения

Области разработки

Технологический стек

  • CentOS / Ubuntu
  • PHP
  • Phalcon /Symfony (Silex)
  • DNS Round Robin
  • Nginx
  • MongoDB
  • ReactJS