Nowa wersja DBMS Redis 7.0 została już wydana, Redis zapewnia funkcje przechowywania danych w formacie klucz/wartość, rozszerzone o obsługę formatów danych strukturalnych, takich jak listy, skróty i zestawy, a także możliwość uruchamiania sterowników skryptów Lua po stronie serwera.
W przeciwieństwie do systemów pamięci masowej, takich jak Memcached, Redis zapewnia trwałe przechowywanie danych na dysku i zapewnia bezpieczeństwo bazy danych w przypadku nieprawidłowego zamknięcia. Teksty źródłowe projektu są rozpowszechniane na licencji BSD.
Biblioteki klienckie są dostępne dla najpopularniejszych języków, w tym Perl, Python, PHP, Java, Ruby i Tcl. Redis obsługuje transakcje, które pozwalają na wykonanie grupy poleceń w jednym kroku, zapewniając spójność i spójność (polecenia z innych żądań nie mogą blokować) wykonania danego zestawu poleceń, a w przypadku problemów umożliwia wycofanie zmiany. Wszystkie dane są w pełni buforowane w pamięci RAM.
Kluczowe nowe funkcje Redis 7.0
W tej nowej wersji DBMS, która jest prezentowana dodano wsparcie dla funkcji po stronie serwera, ponieważ w przeciwieństwie do wcześniej obsługiwanych skryptów Lua, funkcje nie są specyficzne dla aplikacji i mają na celu implementację dodatkowej logiki które rozszerza możliwości serwera.
Funkcje są przetwarzane nierozerwalnie z danymi i w odniesieniu do bazy danych, a nie aplikacji, w tym replikacja i trwałe przechowywanie.
Kolejną nowością, która wyróżnia się w Redis 7.0 jest Druga edycja ACL, który pozwala kontrolować dostęp do danych na podstawie kluczy i umożliwia definiowanie różnych zestawów reguł dostępu dla poleceń z możliwością powiązania wielu selektorów (zestawów uprawnień) z każdym użytkownikiem. Każdy klucz można zidentyfikować z określonymi uprawnieniami, na przykład można ograniczyć dostęp tylko do odczytu lub zapisu do określonego podzbioru kluczy.
Oprócz tego należy zauważyć, że Redis 7.0 zapewnia u fragmentaryczna implementacja paradygmatu dystrybucji wiadomości Publikuj-Subskrybuj, działający w klastrze, w którym wiadomość jest wysyłana do określonego węzła, do którego dołączony jest kanał wiadomości, po czym ta wiadomość jest przekierowywana do pozostałych węzłów zawartych w kadłubie. Klienci mogą odbierać komunikaty, subskrybując kanał, zarówno łącząc się z węzłem podstawowym, jak i z węzłami dodatkowymi sekcji.
Podkreśla się również, że zapewnił możliwość obsługi wielu konfiguracji jednocześnie w pojedynczym wywołaniu CONFIG SET/GET oraz czy opcje „–json”, „-2”, „–scan”, „–functions-rdb” zostały dodane do narzędzia redis-cli.
Domyślnie, dostęp do ustawień i poleceń wpływających na bezpieczeństwo jest wyłączony dla klientów (na przykład polecenia DEBUG i MODULE są wyłączone, zmiana konfiguracji z flagą PROTECTED_CONFIG jest zabroniona). Redis-cli przestał wysyłać polecenia zawierające poufne dane do pliku historii.
Z drugiej strony wyróżnia się tymWykonaliśmy dużą część optymalizacji mających na celu poprawę wydajności i zmniejszyć zużycie pamięci. Na przykład, zużycie pamięci zostało znacznie zmniejszone gdy tryb klastra jest włączony, podczas wykonywania operacji kopiowania przy zapisie oraz podczas pracy z kluczami skrótu i zset, a ponadto poprawiono logikę opróżniania danych na dysk (tzw. fsync).
Naprawiono usterkę CVE-2022-24735 w środowisku wykonywania skryptów Lua, co pozwala nadpisać własny kod Lua i spowodować jego uruchomienie w kontekście innego użytkownika, również tych z wyższymi uprawnieniami.
Ponadto możemy wskazać na podatność (CVE-2022-0543) w pakietach z Redis dla Ubuntu i Debian (problem jest specyficzny dla poszczególnych zestawów i nie jest związany z samym Redis), co pozwala na wykonanie dowolnego kodu Lua na zdalnym serwerze i pominięcie mechanizmu izolacji środowiska piaskownicy w celu uruchamiania skryptów w Redis.
Rozwiązano lukę CVE-2022-24736, która mogła pozwolić na awarię procesu serwera redis z powodu wyłuskania wskaźnika zerowego. Atak odbywa się poprzez wczytanie specjalnie spreparowanych skryptów Lua.
w końcu jeśli jesteś chcesz dowiedzieć się więcej na ten temat, Możesz sprawdzić szczegóły poniżej link