Wydanie systemu DBMS Redis 6.0

Przygotowany Wydanie DBMS-a Redis 6.0, należące do klasy systemów NoSQL. Redis zapewnia funkcje podobne do Memcached do przechowywania danych klucz/wartość, rozszerzone o obsługę formatów danych strukturalnych, takich jak listy, skróty i zestawy, oraz możliwość uruchamiania skryptów obsługi Lua po stronie serwera. Kod projektu dostarczane na licencji BSD. Dodatkowe moduły oferujące zaawansowane możliwości dla użytkowników korporacyjnych, takie jak RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom od zeszłego roku dostarczone na autorskiej licencji RSAL. Projekt kontynuuje rozwój otwartych wersji tych modułów w ramach licencji AGPLv3 Dobra forma.

W przeciwieństwie do Memcached, Redis zapewnia trwałe przechowywanie danych na dysku i gwarantuje bezpieczeństwo bazy danych w przypadku awaryjnego wyłączenia. Kod źródłowy projektu rozpowszechniany jest 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ą zakłócać) w wykonaniu danego zestawu poleceń, a w przypadku problemów umożliwiając wycofanie zmiany. Wszystkie dane są w pełni buforowane w pamięci RAM.

Do zarządzania danymi służą takie polecenia, jak zwiększanie/zmniejszanie, standardowe operacje na listach i zbiorach (suma, przecięcie), zmiana nazwy klawiszy, wielokrotny wybór i funkcje sortowania. Obsługiwane są dwa tryby przechowywania: okresowa synchronizacja danych na dysku oraz utrzymywanie dziennika zmian na dysku. W drugim przypadku zapewnione jest całkowite bezpieczeństwo wszelkich zmian. Istnieje możliwość zorganizowania replikacji danych master-slave na kilka serwerów, realizowanej w trybie nieblokującym. Dostępny jest także tryb przesyłania wiadomości „publikuj/subskrybuj”, w którym tworzony jest kanał, z którego wiadomości są dystrybuowane do klientów w ramach subskrypcji.

Klucz ulepszeniadodano w Redis 6.0:

  • Domyślnie proponowany jest nowy protokół RESP3, ale konfiguracja połączenia rozpoczyna się w trybie RESP2, a klient przełącza się na nowy protokół tylko wtedy, gdy podczas negocjowania połączenia zostanie użyte nowe polecenie HELLO. RESP3 umożliwia bezpośrednie zwracanie złożonych typów danych bez konieczności konwertowania tablic ogólnych po stronie klienta i oddzielania typów zwracanych.
  • Obsługa list kontroli dostępu (ACL), pozwalając na dokładne określenie, jakie operacje może wykonać Klient, a jakich nie. Listy ACL umożliwiają również ochronę przed możliwymi błędami podczas programowania, na przykład programowi obsługi wykonującemu tylko operację BRPOPLPUSH można zabronić wykonywania innych operacji, a jeśli wywołanie FLUSHALL dodane podczas debugowania zostanie przypadkowo zapomniane w kodzie produkcyjnym, spowoduje to nie prowadzić do problemów. Wdrożenie listy ACL nie powoduje żadnych dodatkowych kosztów ogólnych i praktycznie nie ma wpływu na wydajność. Przygotowano także moduły interfejsu dla ACL, umożliwiające tworzenie własnych metod uwierzytelniania. Aby wyświetlić wszystkie zarejestrowane naruszenia ACL, dostępne jest polecenie „ACL LOG”. Aby wygenerować nieprzewidywalne klucze sesji, dodano polecenie „ACL GENPASS” przy użyciu HMAC opartego na SHA256.
  • Wsparcie SSL / TLS do szyfrowania kanału komunikacji pomiędzy klientem a serwerem.
  • Wsparcie buforowanie danych po stronie klienta. Aby uzgodnić pamięć podręczną po stronie klienta ze stanem bazy danych, dostępne są dwa tryby: 1. Zapamiętywanie na serwerze kluczy, o które wcześniej prosił klient, w celu poinformowania go o utracie aktualności wpisu w pamięci podręcznej klienta. 2. Mechanizm „rozgłaszania”, w którym klient subskrybuje określone prefiksy kluczy, a serwer powiadamia go w przypadku zmiany kluczy objętych tymi prefiksami. Zaletą trybu „broadcast” jest to, że serwer nie marnuje dodatkowej pamięci na przechowywanie mapy wartości buforowanych po stronie klienta, natomiast wadą jest to, że zwiększa się liczba przesyłanych wiadomości.
  • Broker komunikatów Disque, który umożliwia wykorzystanie Redis do przetwarzania kolejek komunikatów, został usunięty z podstawowej struktury w osobny moduł.
  • обавлен Serwer proxy klastra, proxy dla klastra serwerów Redis, umożliwiające klientowi zorganizowanie pracy z kilkoma serwerami Redis tak, jakby były pojedynczą instancją. Serwer proxy może kierować żądania do węzłów z niezbędnymi danymi, wykonywać połączenia multipleksowe, rekonfigurować klaster w przypadku wykrycia awarii węzłów i wykonywać żądania obejmujące wiele węzłów.
  • Znacząco ulepszono API do pisania modułów, w zasadzie zamieniając Redis w framework pozwalający na tworzenie systemów w formie modułów dodatkowych.
  • Zaimplementowano tryb replikacji, w którym pliki RDB są natychmiast usuwane po ich wykorzystaniu.
  • Udoskonalono protokół replikacji PSYNC2, co umożliwiło częstsze wykonywanie częściowej resynchronizacji, zwiększając szansę na identyfikację offsetów wspólnych dla repliki i mastera.
  • Przyspieszono ładowanie plików RDB. W zależności od zawartości pliku przyspieszenie waha się od 20 do 30%. Wykonywanie polecenia INFO zostało znacznie przyspieszone w przypadku dużej liczby podłączonych klientów.
  • Dodano nową komendę STRALGO z implementacją złożonych algorytmów przetwarzania ciągów. Obecnie dostępny jest tylko jeden algorytm LCS (najdłuższa wspólna sekwencja), który może być przydatny przy porównywaniu sekwencji RNA i DNA.

Źródło: opennet.ru

Dodaj komentarz