Wydanie bazy danych Redis 7.4, przetłumaczone na licencje własnościowe

Opublikowano nową wersję bazy danych Redis 7.4, która należy do klasy systemów NoSQL. Redis oferuje funkcje przechowywania danych w formacie klucz/wartość, z rozszerzoną obsługą strukturalnych formatów danych, takich jak listy, hashe i zbiory, a także możliwość wykonywania skryptów po stronie serwera w języku Lua. W przeciwieństwie do systemów przechowywania w pamięci, takich jak Memcached, Redis przechowuje bazę danych nie tylko w pamięci, ale również na dysku, co gwarantuje zachowanie danych w przypadku awarii.

Redis 7.4 ogłoszono jako pierwszą wersję, która jest rozpowszechniana na nowych warunkach licencyjnych — zamiast wcześniej stosowanej licencji BSD, kod jest teraz dostępny na podstawie licencji proprietarnych RSALv2 (Redis Source Available License v2) i SSPLv1 (Server Side Public License v1). Ci, którzy chcą kontynuować korzystanie z kodu na podstawie licencji BSD, mogą skorzystać z projektów Valkey (fork rozwijany z udziałem Amazon, Google, Oracle, Ericsson i Snap), Redict (fork od autora interfejsu użytkownika Sway i języka Hare), Garnet (baza danych od Microsoftu kompatybilna z Redis) lub KeyDB (wysokowydajny fork Redis 5 od Snapchata).

Licencje SSPL i RSAL prowadzą do dyskryminacji niektórych kategorii użytkowników, co uniemożliwia ich uznanie za otwarte lub wolne. Pod względem celów obie licencje są podobne, a różnice sprowadzają się do tego, że licencja SSPL opiera się na licencji copyleft AGPLv3, a licencja RSAL oparta jest na permisywnej licencji BSD. Licencja RSAL pozwala na używanie, modyfikowanie, rozpowszechnianie i integrowanie kodu w aplikacjach, z wyjątkiem przypadków, gdy te aplikacje są komercyjne lub używane do świadczenia zarządzanych płatnych usług. Licencja SSPL dodatkowo zawiera wymóg dostarczania nie tylko kodu samej aplikacji, ale również źródlanych kodów wszystkich komponentów zaangażowanych w świadczenie usługi w chmurze.

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 funkcjonalności Redis 7.4:

  • Dodano możliwość ograniczenia czasu życia poszczególnych pól w haszach, strukturach do przechowywania grupowanych kolekcji rekordów w formacie klucz-wartość. W przeciwieństwie do wyznaczania czasu życia klucza, proponowana zmiana pozwala na ustawienie nie tylko ogólnego czasu życia dla wszystkich powiązanych pól, ale także indywidualnych wartości czasu życia dla poszczególnych pól, co może być wykorzystywane na przykład do zapewnienia krótszego cyklu życia tokenów autoryzacyjnych w porównaniu z innymi danymi sesji.
  • Proponowane nowe typy danych bfloat16 i float16, zoptymalizowane do użycia w aplikacjach uczenia maszynowego i pozwalające na zmniejszenie zużycia pamięci w porównaniu do wcześniej dostępnych typów float32 i float64. Przy użyciu w haszach nowe typy umożliwiają zmniejszenie zużycia pamięci w wektorowych bazach danych o 47%, skrócenie opóźnienia wydobycia danych o 59% oraz zmniejszenie czasu tworzenia indeksów o 58% w porównaniu z typem float64.
  • Uproszczono korzystanie z indeksów wtórnych. Podczas zapytania o informacje z indeksów wtórnych nie ma już potrzeby eskalowania poszczególnych znaków specjalnych, takich jak "@" i ".", a można używać podwójnych cudzysłowów do otoczenia fragmentu danych. Znacząco poprawiono także indeksowanie pustych i brakujących pól — do tworzenia indeksów i formułowania zapytań, które uwzględniają obecność pól, wprowadzono nowe słowo kluczowe INDEXMISSING i funkcję ismissing(). Dodano nowe operatory INTERSECT i DISJOINT dla uproszczenia wyszukiwania danych geopro przestrzennych. Dodano funkcje analizy zużycia pamięci przez indeks.
  • Dodano wsparcie dla filtrów, które pozwalają na odfiltrowanie elementów w dodawanych zestawach danych, na przykład przy okresowym ładowaniu do bazy danych danych z czujników można dodać filtr do ignorowania wartości, której różnica czasowa od poprzedniej wartości jest mniejsza od określonej wartości progowej.
  • Wsparcie dla wyzwalaczy i funkcji w języku JavaScript zaproponowanych w poprzednim wydaniu zostało zakończone.

Ź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