Redis

Бесплатно
Windows
macOS
Linux

Сайт: redis.io

Redis — высокопроизводительная in-memory key–value NoSQL база данных и кеш с открытым исходным кодом, разработанная для хранения и обработки данных в оперативной памяти с опциональной персистентностью на диск. Она поддерживает разнообразные абстракции данных поверх ключей, включая строки, хэши, списки, множества, отсортированные множества и стримы, что позволяет применять Redis в качестве как простого кеша, так и полноценного хранилища структурированных данных для быстрых операций чтения и записи.

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

  • Модель данных: хранение пар ключ–значение с поддержкой различных типов значений: строки, хэши, списки, множества, отсортированные множества, битмапы, гиперлоглоги и стримы.
  • Производительность: оптимизировано для операций в оперативной памяти с низкой латентностью и высокой пропускной способностью; операции выполняются главным образом в однопоточном цикле событий для упрощения согласованности.
  • Персистентность: поддержка снимков (RDB) и журналируемой записи команд (AOF) с возможностью комбинирования режимов для балансировки между скоростью и надёжностью.
  • Репликация: асинхронная репликация master–replica для повышения доступности и распределения нагрузки на чтение.
  • Кластеризация: встроенный кластерный режим для шардирования данных между узлами и обеспечения горизонтального масштабирования и отказоустойчивости.
  • Транзакции и атомарность: поддержка групп команд в виде транзакций (MULTI/EXEC) и механизмов оптимистической блокировки (WATCH).
  • Скрипты: выполнение скриптов на Lua на сервере для атомарного исполнения сложной логики и сокращения сетевого взаимодействия.
  • Управление памятью: конфигурируемая политика вытеснения устаревших ключей, возможность ограничения использования памяти и различные стратегии работы при исчерпании ресурсов.
  • Набор утилит и клиентов: множество официальных и сторонних клиентов для разных языков программирования и набор инструментов для управления и мониторинга.
  • Типичные сценарии использования: кеширование, очереди и брокеры сообщений, реализация счётчиков и лидеров досок, обработка потоков событий в реальном времени и хранение сессий.
Подробнее