Repolode
dragonflydb

dragonflydb/dragonfly

In-memory хранилище данных, совместимое по API с Redis и Memcached и задуманное как их прямая замена.

Open source альтернатива:Redis

Звёзды
31,798
Форки
1,283
Открытые issues
276
Последний коммит
9 часов назад

Что это?

Dragonfly — это in-memory хранилище данных, реализующее протоколы Redis и Memcached. Поэтому существующие клиенты и приложения могут подключаться к нему без изменений кода. Проект написан на C++ и использует архитектуру shared-nothing, распределяя пространство ключей между потоками. Благодаря этому один экземпляр может задействовать несколько ядер CPU, тогда как процесс Redis обычно полагается на один поток.

Проект подходит для кэширования и работы с ключами и значениями. В нём есть режим адаптивного вытеснения из кэша, включаемый флагом, истечение срока действия по TTL и механизм создания snapshot для резервного копирования. Создание snapshot можно запланировать с помощью cron-выражения. Dragonfly также предоставляет метрики, совместимые с Prometheus, и встроенную HTTP-консоль на основном порту. В развёртываниях, доступных из недоверенных сетей, консоль можно отключить.

В README приведены результаты сравнительных тестов с Redis и Memcached на инстансах AWS; показатели пропускной способности и задержки зависят от размера инстанса и рабочей нагрузки. Эти цифры получены в собственных тестах проекта, поэтому их стоит проверить на своей нагрузке.

Ключевые возможности

  • 01Совместимость с протоколами Redis и Memcached позволяет использовать существующие клиенты без изменений кода.
  • 02Многопоточная архитектура распределяет ключи между потоками, чтобы задействовать несколько ядер CPU.
  • 03Режим адаптивного вытеснения удаляет элементы при приближении к лимиту памяти.
  • 04Планирование создания snapshot с помощью cron-синтаксиса и метрики, совместимые с Prometheus.
  • 05Встроенная HTTP-консоль на основном порту, которую можно отключить.

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

  • Замена развёртывания Redis, упирающегося в ограничения одного потока CPU.
  • Использование в качестве слоя кэширования перед базами данных с клиентами Redis или Memcached.
  • Запуск хранилища ключей и значений на крупных облачных инстансах с большим числом ядер.
  • Мониторинг состояния in-memory хранилища с помощью Prometheus и Grafana.

Быстрый старт

  1. 1

    Получите бинарный файл Dragonfly, следуя руководству по быстрому запуску в документации

  2. 2

    Запустите Dragonfly с параметрами примера скрипта запуска

    ./dragonfly-x86_64 --logtostderr --requirepass=youshallnotpass --cache_mode=true -dbnum 1 --bind localhost --port 6379 --maxmemory=12gb --keys_output_limit=12288 --dbfilename dump

Что важно знать

  • В метаданных лицензия указана как NOASSERTION, поэтому перед использованием необходимо проверить условия лицензии непосредственно в репозитории.
  • Сроки истечения свыше 2^28 мс округляются до ближайшей секунды, что может подойти не для всех сценариев использования.

Темы

Частые вопросы

Что такое dragonfly?
In-memory хранилище данных, совместимое по API с Redis и Memcached и задуманное как их прямая замена. Dragonfly — это in-memory хранилище данных, реализующее протоколы Redis и Memcached. Поэтому существующие клиенты и приложения могут подключаться к нему без изменений кода. Проект написан на C++ и использует архитектуру shared-nothing, распределяя пространство ключей между потоками. Благодаря этому один экземпляр может задействовать несколько ядер CPU, тогда как процесс Redis обычно полагается на один поток.
dragonfly можно использовать бесплатно? Какая у него лицензия?
dragonfly распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
dragonfly всё ещё поддерживается?
Активно поддерживается. Последний коммит в dragonfly — 19 окт. 2026 г..
Для чего можно использовать dragonfly?
Замена развёртывания Redis, упирающегося в ограничения одного потока CPU. Использование в качестве слоя кэширования перед базами данных с клиентами Redis или Memcached. Запуск хранилища ключей и значений на крупных облачных инстансах с большим числом ядер. Мониторинг состояния in-memory хранилища с помощью Prometheus и Grafana.
Как установить dragonfly?
Получите бинарный файл Dragonfly, следуя руководству по быстрому запуску в документации Запустите Dragonfly с параметрами примера скрипта запуска: ./dragonfly-x86_64 --logtostderr --requirepass=youshallnotpass --cache_mode=true -dbnum 1 --bind localhost --port 6379 --maxmemory=12gb --keys_output_limit=12288 --dbfilename dump
Где скачать dragonfly?
Исходный код и инструкции по установке — на GitHub: https://github.com/dragonflydb/dragonfly

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Apache Druid — высокопроизводительная база данных для аналитики в реальном времени, быстрых запросов и загрузки данных; её часто используют как open-source альтернативу хранилищам данных.

14,1 тыс.3,8 тыс.JavaApache-2.0Обновлён вчера