Что это
Redis — стандарт индустрии для хранения данных в памяти, долгое время работавший в однопоточном режиме. KeyDB — это высокопроизводительный форк Redis, созданный для устранения ограничений однопоточности за счет многопоточной архитектуры.
| Параметр | Redis | KeyDB |
|---|---|---|
| Архитектура | Однопоточное ядро (IO-threads с версии 6) | Многопоточное ядро (Multi-threaded) |
| Лицензия | RSALv2 / SSPLv1 (с 2024 года) | BSD 3-Clause |
| Совместимость | Оригинальный протокол | Полная совместимость с Redis API |
| Масштабирование | Горизонтальное (Cluster) | Вертикальное и горизонтальное |
| Snapshotting | Fork-based (Copy-on-write) | Flash-based / Multi-threaded |
Производительность
Redis обрабатывает команды последовательно. На одном ядре производительность достигает 100-150 тысяч операций в секунду. Введение io-threads в Redis 6 ускорило сетевой ввод-вывод, но логика выполнения команд остается однопоточной.
KeyDB распределяет выполнение команд между несколькими потоками. В тестах на 16-ядерных инстансах KeyDB показывает пропускную способность в 3-7 раз выше, чем Redis, достигая 700,000+ OPS на одном узле. Это позволяет сократить количество узлов в кластере при сохранении той же нагрузки.
Конфигурация и сложность
KeyDB является прямой заменой (drop-in replacement). Основное отличие в конфигурационном файле — параметр server-threads. В Redis настройка потоков ограничена io-threads, которые не влияют на выполнение самих команд.
# KeyDB config
server-threads 4
active-replication yesKeyDB также поддерживает активную репликацию (multi-master), что упрощает настройку отказоустойчивых схем по сравнению с Redis Sentinel.
Когда выбрать что
Redis: если требуется максимальная стабильность, работа в управляемых облачных сервисах (AWS ElastiCache, Google MemoryStore) или если текущая нагрузка не упирается в производительность одного ядра.
KeyDB: если необходимо минимизировать количество узлов в инфраструктуре, требуется работа с большими наборами данных на мощных многоядерных серверах или нужна свободная BSD-лицензия без ограничений BSL/RSAL.
Стоимость / лицензия
В марте 2024 года Redis перешел на несвободные лицензии RSALv2 и SSPLv1, что ограничивает возможность облачных провайдеров предлагать Redis как сервис. KeyDB остается под лицензией BSD, что делает его предпочтительным для открытых проектов и кастомных облачных сборок.
Экосистема и интеграции
Redis обладает огромным сообществом, поддержкой всех существующих SDK и интеграцией со всеми мониторинговыми системами. KeyDB полностью совместим с клиентами Redis (jedis, redis-py, go-redis), поэтому миграция не требует изменения кода приложения.
Вердикт
- Redis — выбор для стандартных Enterprise-решений, где важна поддержка вендоров и проверенная годами кодовая база.
- KeyDB — выбор для высоконагруженных систем, где важна вертикальная масштабируемость и высокая плотность запросов на один сервер.