Valkey
Valkey — это высокопроизводительная система управления базами данных (СУБД) класса NoSQL, работающая в оперативной памяти (in-memory) и использующая модель «ключ-значение» (key-value store). Valkey является форком (ответвлением) популярной СУБД Redis, созданным в марте 2024 года после изменения лицензионной политики Redis Ltd. Проект разрабатывается под эгидой Linux Foundation и распространяется по открытой лицензии BSD-3-Clause, что гарантирует его полную открытость и свободу использования.
История
Предпосылки появления
СУБД Redis, созданная Сальваторе Санфилиппо в 2009 году, долгое время развивалась как проект с открытым исходным кодом под лицензией BSD. В 2020 году компания Redis Ltd. (организация, зарегистрированная в США; статус в РФ не определён) изменила модель лицензирования, переведя некоторые модули под проприетарную лицензию SSPL. В августе 2023 года Redis Ltd. объявила о переходе на лицензию RSALv2 (Redis Source Available License), которая ограничивала коммерческое использование, особенно в облачных сервисах.
Создание форка
20 марта 2024 года компания Redis Ltd. объявила о смене лицензии для всех версий Redis на SSPLv1 (Server Side Public License), что вызвало негативную реакцию в сообществе разработчиков. SSPL является ограничительной лицензией, не признанной Open Source Initiative (OSI) в качестве открытой, и накладывает существенные ограничения на предоставление программного обеспечения как сервиса (SaaS).
В ответ на это 28 марта 2024 года группа разработчиков, включая ключевых мейнтейнеров Redis из сообщества, объявила о создании форка под названием Valkey. Инициативу поддержали такие компании, как Amazon Web Services (AWS), Google Cloud, Oracle, Ericsson и Snap Inc. Проект был передан под управление Linux Foundation, одной из крупнейших некоммерческих организаций, поддерживающих открытое программное обеспечение.
Развитие после форка
Первая стабильная версия Valkey 7.2.5 была выпущена в апреле 2024 года, полностью совместимая с Redis 7.2.4. В сентябре 2024 года вышла версия Valkey 8.0, которая включала ряд улучшений по сравнению с оригинальным Redis, в частности, оптимизацию работы с памятью и повышение производительности. На 2025 год проект активно развивается, получая патчи и новые функции от сообщества и корпоративных участников.
Архитектура и принципы работы
Модель данных
Valkey, как и Redis, хранит данные в оперативной памяти, что обеспечивает чрезвычайно высокую скорость операций (микросекунды). Основной структурой является «ключ-значение», где ключом выступает уникальная строка, а значением может быть один из поддерживаемых типов данных:
- Строки (Strings): простые текстовые или бинарные данные.
- Списки (Lists): упорядоченные коллекции строк.
- Множества (Sets): неупорядоченные коллекции уникальных строк.
- Упорядоченные множества (Sorted Sets): множества с привязанной оценкой (score) для сортировки.
- Хеши (Hashes): структуры, аналогичные словарям или объектам.
- Битовые массивы (Bitmaps): работа с отдельными битами.
- Гиперлоглоги (HyperLogLogs): вероятностные структуры для подсчёта уникальных элементов.
- Потоки (Streams): структура для ведения журнала событий (log).
Персистентность
Несмотря на хранение данных в оперативной памяти, Valkey поддерживает механизмы сохранения данных на диск для обеспечения долговременного хранения и восстановления после сбоев:
- RDB (Redis Database Backup): создание дампов (снимков) данных в заданные моменты времени.
- AOF (Append-Only File): журналирование всех операций записи, что позволяет восстановить состояние базы данных с минимальными потерями.
Репликация и кластеризация
Valkey поддерживает репликацию «ведущий-ведомый» (master-replica), где ведущий узел обрабатывает запросы на запись, а ведомые — реплицируют данные и могут обслуживать запросы на чтение. Это обеспечивает отказоустойчивость и масштабирование нагрузки чтения.
Для горизонтального масштабирования используется кластеризация (Redis Cluster), при которой данные автоматически распределяются по нескольким узлам (шардам). Valkey 8.0 улучшил механизмы кластеризации, снизив задержки при перераспределении данных.
Отличия от Redis
Основные различия между Valkey и Redis (начиная с версии 7.4) обусловлены лицензионной политикой и моделью управления:
| Характеристика | Valkey | Redis (Redis Ltd.) |
|---|---|---|
| Лицензия | BSD-3-Clause (полностью открытая) | SSPLv1 (ограничительная) |
| Управление | Linux Foundation (сообщество) | Redis Ltd. (коммерческая компания) |
| Совместимость | Полная совместимость с Redis 7.2 | Обратная совместимость с предыдущими версиями |
| Новые функции | Развиваются сообществом | Развиваются компанией |
| Модули | Поддерживаются через сторонние решения | Проприетарные модули (RediSearch, RedisJSON и др.) |
На уровне API и протокола Valkey полностью совместим с Redis, что позволяет использовать существующие клиентские библиотеки и инструменты без изменений кода.
Применение
Valkey широко используется в веб-разработке, финтехе, игровой индустрии и системах реального времени благодаря высокой производительности. Основные сценарии:
- Кэширование: ускорение доступа к данным, снижение нагрузки на основные базы данных (например, PostgreSQL, MySQL).
- Управление сессиями: хранение пользовательских сессий в веб-приложениях.
- Очереди задач: реализация систем асинхронной обработки (через списки или потоки).
- Публикация/подписка (Pub/Sub): организация обмена сообщениями между компонентами системы.
- Рейтинг и лидерборды: использование упорядоченных множеств для построения рейтингов.
- Геопространственные данные: хранение и запросы координат объектов.
Критика и ограничения
Основные недостатки Valkey (и систем класса in-memory key-value в целом) включают:
- Ограниченный объём данных: объём базы данных ограничен доступной оперативной памятью сервера, что может быть дорого для больших объёмов.
- Сложность восстановления: при сбое питания без надлежащей настройки персистентности возможна потеря данных.
- Отсутствие сложных запросов: Valkey не поддерживает SQL-подобные запросы, соединения таблиц или сложные агрегации.
- Зависимость от сообщества: дальнейшее развитие проекта полностью зависит от активности сообщества и корпоративных спонсоров, что может замедлить внедрение новых функций по сравнению с коммерчески управляемым Redis.
Правовой статус в России
На 2025 год Valkey не включён в реестр запрещённого или ограниченного к использованию программного обеспечения на территории Российской Федерации. Проект распространяется по открытой лицензии BSD-3-Clause, которая не содержит ограничений, противоречащих законодательству РФ. Использование Valkey в коммерческих и государственных проектах в России не требует дополнительных разрешений.
Источники
- Официальный сайт проекта Valkey (valkey.io).
- Репозиторий проекта на GitHub (valkey-io/valkey).
- Linux Foundation — официальный сайт (linuxfoundation.org).
- Статья «Valkey: The Redis Fork» на сайте InfoQ (апрель 2024).
- Документация Redis (до версии 7.2) — официальный сайт (redis.io).
- Аналитические материалы Open Source Initiative (OSI) по лицензиям SSPL и BSD.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →