Valkey 9.1

Сообщество Valkey объявило о выпуске Valkey 9.1 — новой стабильной версии высокопроизводительного хранилища данных типа «ключ-значение» с открытым исходным кодом (лицензия BSD), которое поддерживает различные сценарии использования, такие как кэширование и очереди сообщений, а также может выступать в качестве основной базы данных. Проект поддерживается Linux Foundation, что гарантирует его постоянную доступность в виде открытого исходного кода.
Проект является форком Redis и создан после изменений в его лицензировании.
Этот выпуск включает в себя новые функции, усовершенствования в безопасности и мониторинге, а также производительности и эффективности инструментария. В подготовке релиза приняли участие более 80 человек.
Основные изменения
-
Lua вынесен в отдельный модуль. В Valkey 9.1 движок сценариев Lua отделён от основного сервера и перенесён в самостоятельный модуль. Такое разделение уменьшает поверхность атаки ядра Valkey и даёт администраторам возможность полностью отключить Lua, если сценарии на нём не используются. Чтобы было проще понять, какие движки сценариев загружены в системе, команда
INFOполучила новый раздел ответа —Scripting Engines. -
Новые исправления безопасности. В стабильный выпуск 9.1.0 вошли исправления трёх уязвимостей: use-after-free в механизме разблокировки клиента, некорректного доступа к памяти в команде
7RESTORE, а также use-after-free при полной синхронизации во время выполнения Lua/function-кода с уступкой выполнения. В заметках они указаны как CVE-2026–23479, CVE-2026–25243 и CVE-2026–23631. -
Database-level ACL. Добавлена система контроля доступа на уровне отдельных баз данных. Это позволяет тоньше разделять права в многопользовательских конфигурациях и не ограничиваться только глобальными правилами доступа на уровне всего экземпляра Valkey.
-
Автоматическая перезагрузка TLS-сертификатов. Valkey 9.1 получил поддержку автоматической перезагрузки TLS-сертификатов. Для администраторов это означает меньше ручных операций при ротации сертификатов и более удобную эксплуатацию защищённых инсталляций.
-
Новая команда
HGETDEL. Команда атомарно получает и удаляет одно или несколько полей из hash-структуры. Практический смысл — сценарии, похожие на очередь или одноразовое потребление данных, где раньше приходилось комбинироватьHGETиHDELчерез транзакцию. -
Новая команда
MSETEX.MSETEXпозволяет одной командой установить несколько ключей с общим временем жизни. Раньше для такого сценария требовались несколько вызововSETEXлибо связкаSETиEXPIREчерез pipeline. Новая команда уменьшает число обращений и упрощает типичный код для сессионных и временных данных. -
Новая команда
CLUSTERSCAN. В кластерах появилась единая команда для сканирования ключей по всем узлам. Раньше клиентам приходилось самостоятельно выполнятьSCANна каждом узле и объединять результаты.CLUSTERSCANупрощает клиентские библиотеки, админские инструменты и эксплуатационные задачи вроде поиска ключей по шаблону или типу во всём кластере. -
Оптимизация потребления памяти строками. За счёт внутренних оптимизаций указателей для строк короче 128 байт заявлено снижение потребления памяти до 20%. Это особенно важно для типичных кэширующих нагрузок, где хранится большое количество небольших значений.
-
Меньше памяти для sorted sets. Оптимизации skiplist-структур уменьшают расход памяти для sorted set до 10%. Дополнительно ускорены операции над отсортированными множествами, включая запросы вроде
ZRANGEBYSCOREиZRANGEBYLEX. -
Ускоренная работа с rehashing. Внутреннее перераспределение hash-таблиц, которое часто проявляется при росте keyspace, оптимизировано так, чтобы уменьшить задержки. В release notes также упомянуто снижение latency spikes за счёт incremental page release.
-
Улучшенная модель I/O threading. В релиз-кандидате 9.1.0-rc2 была переработана модель взаимодействия потоков ввода-вывода с использованием lock-free queues. В заметках указано увеличение пропускной способности на 8–17%.
-
Ускорение
GETиSET. Valkey теперь по умолчанию использует аппаратные часы там, где это возможно, что снижает накладные расходы на системные вызовы, связанные со временем. Проект заявляет прирост производительностиGETиSETдо 3% в целом. -
Более быстрые массовые удаления. При операциях вроде
SREM,ZREMиHDELValkey теперь временно приостанавливает внутреннее изменение размеров hash-таблиц, чтобы избежать лишнего rehashing и ускорить массовое удаление элементов. -
Более эффективное создание реплик при AOF. При создании реплики с включённым AOF теперь повторно используется полученный RDB-файл вместо генерации нового снимка для начального AOF base file. Это должно снизить лишнюю нагрузку при развёртывании реплик.
-
Улучшения
valkey-cliиvalkey-benchmark. Вvalkey-cliдобавлена поддержка atomic slot migration через параметр--cluster-use-atomic-slot-migrationдля операций--cluster rebalanceи--cluster reshard. Вvalkey-benchmarkдобавлен вывод распределения RPS, а также параметры--warmupи--duration, что делает тестирование производительности более управляемым.
Отдельно вместе с Valkey 9.1 в экосистеме продвигаются связанные проекты: Valkey Admin для визуального управления кластерами, Valkey Search 1.2 с полнотекстовым поиском, числовыми фильтрами, тегами и векторным поиском, а также клиентская библиотека Valkey GLIDE.
Valkey 9.1 заметное обновление с точки зрения эксплуатации: меньше памяти на типичных структурах, меньше задержек при внутренних перестроениях, новые команды для кластеров и временных данных, а также более аккуратная модель безопасности для production-инсталляций.
>>> Источник:
