Valkey 9.1

Społeczność Valkey ogłosiło wydanie Valkey 9.1 — nowej stabilnej wersji wydajnej bazy danych typu „klucz-wartość” z otwartym kodem źródłowym (licencja BSD), która wspiera różne scenariusze użycia, takie jak buforowanie i kolejki wiadomości, a także może działać jako główna baza danych. Projekt jest wspierany przez Linux Foundation, co zapewnia jego stałą dostępność w postaci otwartego kodu źródłowego.


Projekt jest fork'iem Redis i został stworzony po zmianach w jego licencjonowaniu.

To wydanie zawiera nowe funkcje, ulepszenia w zakresie bezpieczeństwa, monitorowania, wydajności i efektywności narzędzi. W przygotowaniu wersji wzięło udział ponad 80 osób.

Główne zmiany

  • Lua została wydzielona do osobnego modułu.
    W Valkey 9.1 silnik skryptów Lua został oddzielony od głównego serwera i przeniesiony do samodzielnego modułu. Taki podział zmniejsza powierzchnię ataku jądra Valkey i daje administratorom możliwość całkowitego wyłączenia Lua, jeśli skrypty oparte na nim nie są używane. Aby ułatwić zrozumienie, które silniki skryptów są załadowane w systemie, komenda INFO otrzymała nową sekcję w odpowiedzi — Silniki skryptów.

  • Nowe poprawki bezpieczeństwa.
    Do stabilnego wydania 9.1.0 włączono poprawki trzech luk: use-after-free w mechanizmie odblokowywania klienta, nieprawidłowy dostęp do pamięci w komendzie 7RESTORE, a także use-after-free podczas pełnej synchronizacji w trakcie wykonywania kodu Lua/funkcji z przekazaniem wykonywania. W notatkach wymienione są jako CVE-2026-23479, CVE-2026-25243 i CVE-2026-23631.

  • ACL na poziomie bazy danych.
    Dodano system kontroli dostępu na poziomie poszczególnych baz danych. Pozwala to na dokładniejsze rozdzielenie praw w konfiguracjach wieloosobowych i nie ogranicza się jedynie do globalnych zasad dostępu na poziomie całego instancji Valkey.

  • Automatyczne przeładowanie certyfikatów TLS.
    Valkey 9.1 zyskał wsparcie dla automatycznego przeładowania certyfikatów TLS. Dla administratorów oznacza to mniej ręcznych operacji podczas rotacji certyfikatów i łatwiejszą obsługę zabezpieczonych instalacji.

  • Nowa komenda HGETDEL.
    Zespół atomowo pobiera i usuwa jedno lub kilka pól z struktury hash. Praktyczne znaczenie — scenariusze, przypominające kolejkę lub jednorazowe zużycie danych, w których wcześniej należało łączyć HGET i HDEL przez transakcję.

  • Nowa komenda MSETEX.
    MSETEX pozwala ustawić kilka kluczy z wspólnym czasem życia w jednej komendzie. Wcześniej w takim scenariuszu wymagane byłyby liczne wywołania SETEX lub połączenie SET i EXPIRE przez pipeline. Nowa komenda zmniejsza liczbę wywołań i upraszcza typowy kod dla danych sesyjnych i tymczasowych.

  • Nowa komenda CLUSTERSCAN.
    W klastrach pojawiła się jedna komenda do skanowania kluczy we wszystkich węzłach. Wcześniej klienci musieli samodzielnie wykonywać SCAN na każdym węźle i łączyć wyniki. CLUSTERSCAN upraszcza biblioteki klienckie, narzędzia administracyjne oraz operacje takie jak wyszukiwanie kluczy według wzoru lub typu w całym klastrze.

  • Optymalizacja zużycia pamięci przez ciągi.
    Dzięki wewnętrznym optymalizacjom wskaźników dla ciągów krótszych niż 128 bajtów ogłoszono zmniejszenie zużycia pamięci o 20%. Jest to szczególnie istotne dla typowych obciążeń pamięci podręcznej, gdzie przechowywana jest duża liczba małych wartości.

  • Mniej pamięci dla posortowanych zbiorów.
    Optymalizacje struktur skiplist zmniejszają zużycie pamięci dla posortowanych zbiorów o 10%. Dodatkowo przyspieszone zostały operacje na posortowanych zbiorach, w tym zapytania takie jak ZRANGEBYSCORE i ZRANGEBYLEX.

  • Przyspieszona praca z rehashingiem.
    Wewnętrzne przekształcenie tablic hash, które często występuje przy wzroście keyspace, zostało zoptymalizowane w celu zredukowania opóźnień. W notatkach o wydaniu wspomniano również o zmniejszeniu szczytów opóźnień dzięki inkrementalnemu zwalnianiu stron.

  • Ulepszony model wątkowania I/O.
    W wersji z kandydatem 9.1.0-rc2 opracowano na nowo model interakcji wątków wejścia-wyjścia z wykorzystaniem kolejek bezblokujących. W notatkach wskazano na zwiększenie przepustowości o 8–17%.

  • Przyspieszenie GET i SET.
    Valkey teraz domyślnie używa zegarów sprzętowych tam, gdzie to możliwe, co zmniejsza obciążenie systemowymi wywołaniami związanymi z czasem. Projekt ogłasza wzrost wydajności GET i SET o 3% ogółem.

  • Szybsze masowe usuwanie.
    Podczas operacji takich jak SREM, ZREM i HDEL Valkey tymczasowo wstrzymuje wewnętrzną zmianę rozmiaru tabeli hash, aby uniknąć zbędnego rehashingu i przyspieszyć masowe usuwanie elementów.

  • Bardziej efektywne tworzenie replik przy AOF.
    Podczas tworzenia repliki z włączonym AOF ponownie wykorzystuje plik RDB, który został otrzymany, zamiast generować nowy zrzut do początkowego pliku AOF. To powinno zmniejszyć nadmierne obciążenie podczas uruchamiania replik.

  • Ulepszenia valkey-cli i valkey-benchmark.
    W valkey-cli dodano wsparcie dla migracji atomowych slotów przez parametr —cluster-use-atomic-slot-migration dla operacji —cluster rebalance i —cluster reshard. W valkey-benchmark dodano możliwość wyświetlania rozkładu RPS oraz parametry —warmup i —duration, co czyni testowanie wydajności bardziej kontrolowanym.

Oddzielnie, razem z Valkey 9.1 w ekosystemie są promowane powiązane projekty: Valkey Admin do zarządzania klastrami w trybie wizualnym, Valkey Search 1.2 z wyszukiwaniem pełnotekstowym, filtrami numerycznymi, tagami oraz wyszukiwaniem wektorowym, a także biblioteka klienta Valkey GLIDE.

Valkey 9.1 to znacząca aktualizacja pod względem eksploatacji: mniej pamięci na typowych strukturach, mniejsze opóźnienia podczas wewnętrznych przebudów, nowe polecenia dla klastrów i danych czasowych, a także bardziej precyzyjny model bezpieczeństwa dla instalacji produkcyjnych.

Źródło: linux.org.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster