Спільнота Валкі оголосило про випуск 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 та HDEL Valkey тепер тимчасово припиняє внутрішню зміну розмірів 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-інсталяцій.

Джерело: linux.org.ru

Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери 🔥 Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери | ProHoster