Wydanie bazy danych Redis 8.4

Opublikowano wydanie systemu zarządzania bazą danych Redis 8.4, należącego do klasy systemów NoSQL. Redis oferuje funkcje do przechowywania danych w formacie klucz/wartość, rozszerzone o wsparcie dla strukturalnych formatów danych, takich jak listy, hashe i zbiory, a także możliwość wykonywania skryptów obsługi po stronie serwera w języku Lua. Kod projektu napisany jest w języku C i jest udostępniany na licencji AGPLv3.

System zarządzania bazą danych Redis wspiera transakcje, które pozwalają na wykonanie grupy komend w jednym kroku, gwarantując spójność i kolejność (komendy z innych zapytań nie mogą wtrącać się w) wykonanie danego zestawu komend, a w przypadku problemów umożliwiają odwrócenie zmian. Wszystkie dane w całości są buforowane w pamięci operacyjnej. Biblioteki klienckie są dostępne dla większości popularnych języków, w tym Perl, Python, PHP, Java, Ruby i Tcl.

Do zarządzania danymi udostępniane są takie polecenia jak inkrementacja/dekrementacja, standardowe operacje na listach i zbiorach (łączenie, przecięcie), zmiana nazw kluczy, wielokrotne wybory i funkcje sortowania. Obsługiwane są dwa tryby przechowywania: okresowa synchronizacja danych na dysk oraz prowadzenie logu zmian na dysku. W drugim przypadku gwarantowane jest pełne zachowanie wszystkich zmian. Możliwa jest organizacja replikacji danych w trybie master-slave, serwerówrealizowana w trybie nieblokującym. Dostępny jest także tryb wymiany wiadomości "publikacja/subskrypcja", w którym tworzony jest kanał, a wiadomości z niego są przekazywane klientom według subskrypcji.

Kluczowe zmiany w Redis 8.4:

  • Dodano polecenie „FT.HYBRID” z implementacją wyszukiwania hybrydowego, które łączy w jednym zapytaniu możliwości wyszukiwania pełnotekstowego i wektorowego, uwzględniając zarówno bezpośrednie dopasowania, jak i bliskość semantyczną. Wsparcie dla agregacji wyników z składnią podobną do polecenia „FT.AGGREGATE”.
  • Zwiększono przepustowość w typowych zastosowaniach Redis dla buforowania. Na przykład, przy obciążeniach obejmujących 10% operacji zapisu (SET) i 90% operacji odczytu (GET) oraz przechowywaniu wartości szeregowych o wielkości 1 KB, wzrost przepustowości wyniósł 30%.
    Wydanie bazy danych Redis 8.4
  • Zwiększona wydajność operacji wyszukiwania (FT.SEARCH) i agregacji wyników (FT.AGGREGATE). W obciążonych systemach z dużą liczbą równoległych zapytań zaobserwowano wzrost przepustowości i spadek opóźnień do 4,7 razy podczas wykonywania wyszukiwania i do 1,4 razy podczas agregacji wyników.
    Wydanie bazy danych Redis 8.4
  • Przeprowadzono optymalizację alokacji pamięci podczas wykonywania zapytań oraz umożliwiono dostosowanie zachowania w przypadku wyczerpania dostępnej pamięci (OOM, out-of-memory).
  • Zmniejszone zużycie pamięci przy przechowywaniu małych ciągów (do 7 bajtów) w strukturach typu JSON. Na przykład, tablica w JSON zawierająca 500 małych elementów w formacie klucz/wartość zajmuje teraz o 37% mniej pamięci.
  • Zwiększona efektywność przechowywania jednorodnych tablic numerycznych JSON, w których wszystkie elementy mają ten sam typ (wcześniej typ i wartość były przechowywane dla każdego elementu, teraz typ jest przechowywany tylko raz dla całej tablicy). W przeprowadzonym teście takie tablice z milionem jednorodnych elementów wymagają teraz o 50-92% mniej pamięci, w zależności od typu.
  • Do zespołu SET dodano opcje IFEQ, IFNE, IFDEQ i IFDNE, które pozwalają na aktualizację klucza stringowego za pomocą jednej komendy w sytuacjach, gdy związana wartość nie zmieniła się od momentu jej pobrania przez innego klienta.
  • Dodano komendę XDELEX do atomowego usuwania klucza stringowego, jeśli związana z nim wartość nie zmieniła się od momentu pobrania.
  • Dodano komendę DIGEST, która zwraca skrót wartości związanej z danym kluczem.
  • Do komendy XREADGROUP dodano opcję „CLAIM ” do odczytu zarówno wiadomości oczekujących (idle pending), jak i przychodzących (incoming).
  • Dodano komendę MSETEX do atomowego ustawiania lub aktualizowania wielu kluczy stringowych oraz aktualizacji czasu ich życia.
  • Dodano mechanizm atomowej migracji slotów między węzłami klastra (ASM — Atomic Slot Migration), przypominający pełną synchronizację replikacji, działający na poziomie pojedynczych slotów przechowywania danych. Dodano komendę CLUSTER MIGRATION, która umożliwia importowanie slotów z innych węzłów, śledzenie postępu migracji i, jeśli to konieczne, oznaczanie oczekujących operacji migracji.
  • Dodano komendę CLUSTER SLOT-STATS do oceny statystyk w klastrze w kontekście poszczególnych slotów, takich jak liczba kluczy, obciążenie CPU i przepustowość sieciowa.

Źródło: opennet.ru

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