PQ
PQ.Hosting

Валюта

Valkey: BSD-форк Redis — установка, миграция и использование

Автор
PQ
06 апреля 2026
7 мин чтения
107 просмотров

В марте 2024 года Redis сменил лицензию с BSD на дуальную: SSPL + RSALv2. Обе лицензии признаны несовместимыми с определением open-source по версии OSI. Для коммерческого использования это означает ограничения, зависимость от вендора и потенциальные лицензионные риски. В ответ Linux Foundation форкнул Redis 7.2.4 и выпустил Valkey - полностью BSD-совместимый форк с прозрачной моделью управления. Проект поддержали AWS, Google Cloud, Oracle, Ericsson и ряд других крупных игроков. Если вы сейчас используете Redis 7 и не планируете платить за Redis Software или Redis Cloud, Valkey - прямой путь к миграции.

Что такое Valkey

Valkey - это форк Redis 7.2.4, созданный в марте 2024 года под эгидой Linux Foundation. Лицензия BSD 3-Clause, без ограничений на коммерческое использование.

Ключевые характеристики:

  • Полная совместимость на уровне API: все команды Redis работают без изменений
  • Совместимость форматов данных: RDB и AOF файлы читаются напрямую
  • Протокол RESP2/RESP3: существующие клиентские библиотеки (redis-py, Jedis, ioredis, go-redis) не требуют изменений
  • Порт по умолчанию: 6379 - тот же, что у Redis
  • Текущая версия: Valkey 8.x (2025)

В Valkey 8 добавлены улучшения многопоточной обработки I/O, повышающие пропускную способность на многоядерных серверах. Redis 7 в большинстве операций однопоточный по логике выполнения команд - Valkey начал двигаться в сторону более широкого использования потоков без нарушения семантики.

Sentinel и Cluster поддерживаются полностью - конфигурации переносятся без правок.

Valkey vs Redis 7 vs Dragonfly vs KeyDB

  • Valkey 8 - лицензия BSD 3-Clause, полная совместимость с Redis API (форк), производительность выше Redis 7 на I/O-нагрузке, поддержка от Linux Foundation, AWS, Google Cloud
  • Redis 7.4+ - лицензия SSPL + RSALv2 (не open-source), эталон совместимости, поддержка от Redis Ltd.
  • Dragonfly - лицензия BSL 1.1 (тоже не open-source), высокая совместимость, но не 100%, заявлена значительно более высокая производительность, поддержка от Dragonfly Inc.
  • KeyDB - лицензия BSD (форк Redis), высокая совместимость, многопоточный, поддержка от Snap Inc. (развитие замедлилось)

Dragonfly и KeyDB - не drop-in замены в полном смысле: у обоих есть несовместимости по отдельным командам или поведению Cluster. Valkey сохраняет бинарную совместимость, потому что это форк, а не реимплементация.

Установка Valkey на Ubuntu/Debian

Официальный репозиторий Valkey поддерживает Ubuntu 20.04, 22.04, 24.04 и Debian 11/12.

Шаг 1 - Добавить ключ и репозиторий:

curl -fsSL https://packages.valkey.io/valkey-archive-keyring.gpg | sudo gpg --dearmor -o /usr/share/keyrings/valkey-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/valkey-archive-keyring.gpg] https://packages.valkey.io/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/valkey.list

Шаг 2 - Установить пакет:

sudo apt update
sudo apt install valkey -y

Шаг 3 - Включить и запустить сервис:

sudo systemctl enable valkey
sudo systemctl start valkey

Шаг 4 - Проверить версию:

valkey-server --version
# Output: Valkey server v=8.x.x ...

Конфигурационный файл: /etc/valkey/valkey.conf

Установка Valkey на CentOS/AlmaLinux

На CentOS Stream 9 и AlmaLinux 9 официальный RPM-репозиторий подключается аналогично.

Шаг 1 - Добавить репозиторий:

sudo tee /etc/yum.repos.d/valkey.repo << 'EOF'
[valkey]
name=Valkey
baseurl=https://packages.valkey.io/rhel/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://packages.valkey.io/valkey-archive-keyring.gpg
EOF

Шаг 2 - Установить:

sudo dnf install valkey -y

Шаг 3 - Запустить:

sudo systemctl enable --now valkey

Если репозиторий недоступен для вашего дистрибутива, Valkey собирается из исходников:

# Зависимости
sudo dnf install gcc make tcl -y

# Скачать и собрать
wget https://github.com/valkey-io/valkey/archive/refs/tags/8.0.0.tar.gz
tar xzf 8.0.0.tar.gz
cd valkey-8.0.0
make -j$(nproc)
sudo make install

# Конфиг
sudo mkdir -p /etc/valkey
sudo cp valkey.conf /etc/valkey/valkey.conf

Миграция с Redis 7 на Valkey

Так как Valkey - форк Redis 7.2.4, формат RDB-файлов идентичен. Простейшая миграция: остановить Redis, заменить бинарник, запустить Valkey с тем же RDB-файлом.

Вариант 1 - Замена на том же сервере (с кратким downtime):

# 1. Сделать снапшот данных
redis-cli BGSAVE
# Дождаться завершения
redis-cli LASTSAVE

# 2. Остановить Redis
sudo systemctl stop redis

# 3. Скопировать RDB в директорию Valkey
redis-cli CONFIG GET dir
# Обычно /var/lib/redis/dump.rdb

sudo cp /var/lib/redis/dump.rdb /var/lib/valkey/dump.rdb
sudo chown valkey:valkey /var/lib/valkey/dump.rdb

# 4. Запустить Valkey
sudo systemctl start valkey

# 5. Проверить данные
valkey-cli DBSIZE

Вариант 2 - Живая репликация (без downtime):

# На новом сервере с Valkey - настроить репликацию от Redis
valkey-cli REPLICAOF <redis-host> 6379

# Дождаться полной синхронизации
valkey-cli INFO replication
# master_link_status:up - синхронизация завершена

# Переключить приложение на новый сервер
# Затем отключить репликацию
valkey-cli REPLICAOF NO ONE

Этот метод работает потому, что Valkey понимает протокол репликации Redis 7 без изменений.

Ключевые отличия в конфигурации

Файл конфигурации Valkey: /etc/valkey/valkey.conf. Большинство директив идентичны redis.conf. Отличия минимальны:

  • bind, port, daemonize, requirepass, maxmemory, maxmemory-policy - идентичны Redis 7, переносятся без изменений
  • io-threads - новая директива в Valkey 8, включает многопоточный I/O (в Redis 7 отсутствует)
  • io-threads-do-reads - включать вместе с io-threads

Пример включения многопоточного I/O в valkey.conf:

io-threads 4
io-threads-do-reads yes

Рекомендуется устанавливать io-threads равным количеству физических ядер минус 1. На VPS с 4 ядрами - io-threads 3.

Если вы переносите redis.conf в valkey.conf - файл переносится без правок для базовой конфигурации. Специфические директивы Redis 7.4+ (введённые после форка) могут не распознаваться - Valkey выдаст предупреждение в лог, но не упадёт.

Проверка и первые команды

После запуска Valkey базовая проверка:

# Проверка связи
valkey-cli ping
# PONG

# Информация о сервере
valkey-cli info server | grep -E "valkey_version|redis_version|os:|tcp_port"
# valkey_version:8.0.0
# redis_version:8.0.0
# tcp_port:6379

# Запись и чтение ключа
valkey-cli SET testkey "hello from valkey"
valkey-cli GET testkey
# "hello from valkey"

# Проверить количество ключей
valkey-cli DBSIZE

# Использование памяти
valkey-cli info memory | grep used_memory_human

# Benchmark
valkey-benchmark -q -n 100000

В выводе INFO поле redis_version присутствует для обратной совместимости - это нормально. Клиентские библиотеки, проверяющие версию через это поле, продолжат работать корректно.

Часто задаваемые вопросы

Valkey готов к продакшену? Да. Valkey 8.x - стабильная ветка, используется в продакшене крупными облачными провайдерами. AWS ElastiCache и AWS MemoryDB в 2024 году перешли на Valkey как основной движок. Google Cloud Memorystore также добавил поддержку Valkey.

Нужно ли менять клиентские библиотеки? Нет. redis-py, Jedis, ioredis, go-redis, StackExchange.Redis и другие популярные клиенты работают с Valkey без изменений - протокол RESP2/RESP3 идентичен. Менять строку подключения не нужно, только хост/порт если переезжаете на другой сервер.

Работает ли Redis Sentinel и Cluster с Valkey? Да, оба режима поддерживаются полностью. Конфигурация sentinel.conf переносится без изменений. Для Cluster - valkey-cli --cluster работает с теми же параметрами, что redis-cli --cluster.

AWS ElastiCache поддерживает Valkey? Да. С октября 2024 года AWS ElastiCache предлагает Valkey как отдельный движок наряду с Redis OSS. При создании нового кластера в консоли можно выбрать Valkey 7.2 или Valkey 8.0.

Что если нужны функции Redis 7.4+ (введённые после форка)? Valkey развивается независимо - версия 8.0 уже включает собственные улучшения производительности. Следить за roadmap можно на github.com/valkey-io/valkey. Функции, специфичные для коммерческого Redis (Redis Stack, Search/JSON в платной версии), в Valkey не включены - но open-source версии этих модулей существуют отдельно.

Поделиться статьей

Похожие статьи