Redis
Информация, с которой работает Redis, хранится в виде «словаря». Каждому ключу соответствует единственное значение.
Если провести аналогию с рынком СХД (систем хранения данных), то Redis — это как Pure Storage. Узкая специализация и максимальное быстродействие.
Особенности
Основные параметры, которые выделяют Redis среди остальных СУБД (систем управления базами данных):
- Объем данных, с которыми работает Redis, не превышает объема оперативной памяти.
- Работает с разными типами данных: строчный, списочный, числовой, хэш-таблицы и др.
- Внутри Redis нет разграничения на пользователей или группы. Отсутствует контроль доступа.
- СУБД поддерживает масштабируемость. Клиенты могут создавать как несколько узлов с одним главным, так и кластеры.
- Продукт не работает с языком запросов (SQL), а по схеме «ключ-значение».
- Redis поддерживает репликацию. Информация может переноситься с главного узла на другие бесконечное количество раз в зависимости от настроек.
- В случае утери данных восстановление производится одним из двух способов. Первый предполагает работу со снимками (snapshot), а второй — журнал упреждающей записи.
- Для управления узлами Redis используется программное обеспечение Sentinel, которое включено в дистрибутив. Оно поддерживает мониторинг, систему уведомлений, автопереключение на активный узел и другие функции.
- СУБД поддерживает множество языков программирования: Python, Ruby, PHP, Perl, Java и др.
Области применения
Redis используют в определенных сферах обработки данных, например, при работе с Machine Learning в качестве быстрого хранилища данных. Благодаря программному продукту огромный объем данных обрабатываются в незначительный промежуток времени.
Другой вариант — аналитика данных в реальном времени. Например, сервис Amazon Kinesis использует Redis как хранилище информации в памяти для дальнейшей обработки. Задержки при таком подходе измеряются миллисекундами.
Третий вариант предполагает совместную работу с реляционными СУБД. Redis используют как высокодоступный кэш для загрузки видео, метаданных, сохранения наиболее часто повторяющихся запросов к БД и т. д.
В веб-сфере Redis применяют для чатов или лент новостей. Продукт создает очереди по упрощенному алгоритму, что увеличивает быстродействие при множестве одновременных запросов.
Redis также поддерживает работу с геоданными в реальном времени. Его добавляют в программное обеспечение, чтобы выполнять различные операции мгновенно. Например, определение местоположения пользователя или расчет расстояния между клиентом и конечной точкой.
Redis лучше всего подходит для использования в качестве временного хранилища с высокой скоростью обработки данных совместно с другой СУБД (например, MySQL). Надежность и отказоустойчивость обеспечивается интегрированными механизмами репликации и восстановления данных.