Veröffentlichung der Datenbank Redis 8.2

Die Veröffentlichung der NoSQL-Datenbank Redis 8.2 wurde bekannt gegeben. Redis bietet Funktionen zur Speicherung von Daten im Schlüssel-/Wert-Format und erweitert dies durch Unterstützung für strukturierte Datenformate wie Listen, Hashes und Mengen sowie die Möglichkeit, serverseitige Skripte in Lua auszuführen. Der Projektcode ist in C geschrieben und wird unter der AGPLv3-Lizenz veröffentlicht.

Redis unterstützt Transaktionen, die es ermöglichen, eine Gruppe von Befehlen in einem Schritt auszuführen und dabei Konsistenz und Integrität zu garantieren (Befehle von anderen Anfragen können sich nicht dazwischen drängen). Im Falle von Problemen ist es möglich, Änderungen zurückzusetzen. Alle Daten werden vollständig im Arbeitsspeicher zwischengespeichert. Client-Bibliotheken sind für die meisten gängigen Programmiersprachen verfügbar, darunter Perl, Python, PHP, Java, Ruby und Tcl.

Zur Datenverwaltung stehen Befehle zur Verfügung, wie Inkrementierung/Dekrementierung, Standardoperationen für Listen und Mengen (Vereinigung, Schnittmenge), Umbenennung von Schlüsseln, Mehrfachauswahl und Sortierfunktionen. Es werden zwei Speicher-Modi unterstützt: periodische Synchronisation der Daten auf die Festplatte und das Führen eines Änderungsprotokolls auf der Festplatte. Im zweiten Fall wird die vollständige Erhaltung aller Änderungen gewährleistet. Es ist möglich, eine Master-Slave-Replikation der Daten über mehrere Server, die im nicht-blockierenden Modus erfolgt. Auch ein „Publish/Subscribe“-Nachrichtenmodus ist verfügbar, bei dem ein Kanal eingerichtet wird, dessen Nachrichten an abonnierende Clients verbreitet werden.

Wesentliche Änderungen in Redis 8.2:

  • Über 70 Befehle wurden optimiert, die jetzt schneller arbeiten als in Redis 8.0. Zum Beispiel wurde der Befehl BITCOUNT um 35% schneller, und die Befehle für Listenoperationen (LINSERT, LREM und LPOS) sind um 25% schneller. 17 der optimierten Befehle sind mindestens 5% schneller geworden, und 52 mindestens 2%.
    Veröffentlichung der Datenbank Redis 8.2
  • Optimierungen im Code zur Verarbeitung gleichzeitiger Operationen und für das multithreaded Ein-/Ausgabemanagement haben es ermöglicht, die Anzahl der verarbeiteten Operationen pro Sekunde in Tests mit 8 E/A-Threads um 49% zu steigern, wobei die Lastverteilung 20% Schreib- und 80% Leseanfragen betrug. An einem Server wurde die Marke von 1 Million verarbeiteten Operationen pro Sekunde überschritten.
    Veröffentlichung der Datenbank Redis 8.2
  • Die Methode zur Speicherung von Daten im Schlüssel-/Wert-Format wurde grundlegend geändert – es wird jetzt eine einheitliche Struktur kvobj verwendet, die es ermöglicht, den Schlüsselname, den kurzen Wert und die Lebensdauer in einem Speicherblock zu packen und mit einem Verweis auf diese Struktur in Hash-Tabellen auszukommen, anstelle separater Verweise auf Schlüssel, Daten und TTL. Bei der Speicherung kurzer String-Werte hat die neue Methode den Speicherbedarf um 25-37% reduziert.
    Veröffentlichung der Datenbank Redis 8.2
  • Die Speicherung von Daten im JSON-Format wurde optimiert, was den Speicherbedarf um 25-67% bei der Speicherung von Ganzzahlen und Fließkommazahlen gesenkt hat.
  • Im Streams-Mechanismus, der zur Verarbeitung und Speicherung von Nachrichtenströmen verwendet wird, wurden neue Befehle XACKDEL und XDELEX hinzugefügt, die die Arbeit mit Streams vereinfachen, an die mehrere Empfänger (Consumer-Gruppen) angeschlossen sind. Diese Befehle lösen das Problem, eine Nachricht erst zu löschen, nachdem ihr Empfang von allen Verarbeitern bestätigt wurde.
  • Der Befehl BITOP, der für die Durchführung von Bitoperationen gedacht ist, hat neue logische Operatoren DIFF, DIFF1, ANDOR und ONE erhalten.
  • Ein neuer Vektorindex-Typ SVS-VAMANA wurde hinzugefügt, der die Kompression von Vektoren unterstützt.
  • Neue Metriken hinzugefügt: Lastverteilung über einzelne Slots und Verteilung der Schlüsselgrößen für grundlegende Datentypen.

Quelle: opennet.ru

60GB SSD 8Gb DDR4