Год назад сообщество создало форк Redis — Valkey. За это время проект не только выжил, но и обогнал оригинал по функционалу и поддержке. 🚀 Теперь это must-have для облачных и enterprise-решений. Кто следующий? 👀 #opensource #databases
Valkey vs Redis 8.0: технический разбор превосходства форка
Краткий обзор
Спустя год после создания форка Valkey как ответа на закрытие исходного кода Redis, проект не только выжил, но и демонстрирует превосходство над Redis 8.0 в реальных тестах производительности. Ключевые отличия:
- +37% пропускной способности на операциях SET
- +16% на операциях GET
- На 30-60% ниже задержки p99
Технический контекст
После смены лицензии Redis на SSPL в 2023 году сообщество создало Valkey — полностью открытую альтернативу. Несмотря на возвращение Salvatore Sanfilippo (Antirez) в Redis и повторное открытие кода версии 8.0, Valkey смог опередить оригинал благодаря:
- Асинхронной модели I/O потоков от AWS
- Оптимизациям работы с многопоточностью
- Сообществу, сосредоточенному на производительности
Бенчмарки: методология
Тестирование проводилось на AWS c8g.2xlarge (8 vCPU):
- 50M операций SET + 50M GET
- Размер данных: 1KB
- Ключевое пространство: 3M элементов
- Конфигурация Docker с pinning ядер
Результаты:
| Метрика | Valkey 8.1.1 | Redis 8.0 | Преимущество Valkey |
|---|---|---|---|
| SET RPS | 999.8K | 729.4K | +37% |
| GET RPS | 1.12M | 965K | +16% |
| SET p99 (ms) | 0.8 | 0.99 | -19% |
| GET p99 (ms) | 0.43 | 1.1 | -61% |
Глубокий анализ производительности
Многопоточность I/O
Обе системы используют схожую модель работы с потоками, но Valkey демонстрирует лучшую масштабируемость:
- При 6 I/O потоках Valkey показывает 678K RPS против 563K у Redis
- Задержки p99 снижаются на 40-45% при активации многопоточности
Оптимизация IRQ
Ключевой инсайт: распределение обработки прерываний сети (IRQ) по выделенным ядрам дало +20% производительности:
# Конфигурация pinning ядер
sudo ethtool -L ens34 combined 2
echo 1 | sudo tee /proc/irq/99/smp_affinity
echo 2 | sudo tee /proc/irq/100/smp_affinity
Практические рекомендации
-
Настройки соединений:
- Оптимальный диапазон: 256-400 подключений
- При 1024 соединениях задержки вырастают в 2-3 раза
-
Конфигурация потоков:
- Минимальный эффект при 2 потоках (+20%)
- Существенный прирост с 3+ потоками
-
Выделение ресурсов:
- Для 8 vCPU: 2 ядра под IRQ, 6 под обработку запросов
Будущее экосистемы
Valkey продолжает развивать:
- Более точные модели тестирования
- Поддержку смешанных workload’ов (SET+GET)
- Оптимизацию для облачных сред
Redis сохраняет преимущества:
- Зрелость экосистемы
- Поддержку оригинального создателя
- Широкую совместимость
Заключение
Для high-throughput сценариев Valkey предлагает существенные преимущества, особенно в облачных развертываниях. Однако выбор между Valkey и Redis должен учитывать:
- Требования к производительности
- Уровень экспертизы команды
- Интеграцию с существующей инфраструктурой
