Veröffentlichung des Redis 6.0 DBMS

Vorbereitet DBMS-Version Redis 6.0, gehört zur Klasse der NoSQL-Systeme. Redis bietet Memcached-ähnliche Funktionen zum Speichern von Schlüssel-/Wertdaten, erweitert durch die Unterstützung strukturierter Datenformate wie Listen, Hashes und Sets sowie die Möglichkeit, serverseitige Lua-Handler-Skripte auszuführen. Projektnummer geliefert unter BSD-Lizenz. Zusätzliche Module, die erweiterte Funktionen für Unternehmensbenutzer bieten, wie RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom seit letztem Jahr geliefert unter der proprietären RSAL-Lizenz. Die Entwicklung offener Versionen dieser Module unter der AGPLv3-Lizenz wird vom Projekt fortgesetzt Gute Form.

Im Gegensatz zu Memcached bietet Redis eine dauerhafte Datenspeicherung auf der Festplatte und garantiert die Sicherheit der Datenbank im Falle einer Notabschaltung. Der Quellcode des Projekts wird unter der BSD-Lizenz vertrieben. Client-Bibliotheken sind für die gängigsten Sprachen verfügbar, darunter Perl, Python, PHP, Java, Ruby und Tcl. Redis unterstützt Transaktionen, die es Ihnen ermöglichen, eine Gruppe von Befehlen in einem Schritt auszuführen, wodurch Konsistenz und Konsistenz (Befehle von anderen Anforderungen können nicht stören) bei der Ausführung eines bestimmten Befehlssatzes sichergestellt werden und bei Problemen ein Rollback ermöglicht wird Änderungen. Alle Daten werden vollständig im RAM zwischengespeichert.

Für die Datenverwaltung stehen Befehle wie Inkrementieren/Dekrementieren, Standardlisten- und Mengenoperationen (Vereinigung, Schnittmenge), Tastenumbenennung, Mehrfachauswahl und Sortierfunktionen zur Verfügung. Es werden zwei Speichermodi unterstützt: regelmäßige Synchronisierung der Daten auf der Festplatte und Führung eines Änderungsprotokolls auf der Festplatte. Im zweiten Fall ist die vollständige Sicherheit aller Änderungen gewährleistet. Es ist möglich, die Master-Slave-Datenreplikation auf mehreren Servern in einem nicht blockierenden Modus zu organisieren. Es ist auch ein „Publish/Subscribe“-Messaging-Modus verfügbar, bei dem ein Kanal erstellt wird, von dem aus Nachrichten per Abonnement an Clients verteilt werden.

Taste Verbesserungenin Redis 6.0 hinzugefügt:

  • Standardmäßig wird das neue RESP3-Protokoll vorgeschlagen, der Verbindungsaufbau beginnt jedoch im RESP2-Modus und der Client wechselt nur dann zum neuen Protokoll, wenn beim Aushandeln der Verbindung der neue HELLO-Befehl verwendet wird. Mit RESP3 können Sie komplexe Datentypen direkt zurückgeben, ohne dass generische Arrays auf der Clientseite konvertiert werden müssen, und indem die Rückgabetypen getrennt werden.
  • Unterstützung für Zugriffskontrolllisten (ACL), sodass Sie genau bestimmen können, welche Vorgänge vom Client ausgeführt werden können und welche nicht. ACLs ermöglichen auch den Schutz vor möglichen Fehlern während der Entwicklung. Beispielsweise kann einem Handler, der nur die BRPOPLPUSH-Operation ausführt, die Ausführung anderer Operationen untersagt werden, und wenn der beim Debuggen hinzugefügte FLUSHALL-Aufruf versehentlich im Produktionscode vergessen wird, wird dies der Fall sein nicht zu Problemen führen. Die Implementierung einer ACL verursacht keinen zusätzlichen Overhead und hat praktisch keine Auswirkungen auf die Leistung. Auch für ACL wurden Schnittstellenmodule vorbereitet, die es ermöglichen, eigene Authentifizierungsmethoden zu erstellen. Um alle aufgezeichneten ACL-Verstöße anzuzeigen, steht der Befehl „ACL LOG“ zur Verfügung. Um unvorhersehbare Sitzungsschlüssel zu generieren, wurde der Befehl „ACL GENPASS“ mit SHA256-basiertem HMAC hinzugefügt.
  • Unterstützen SSL / TLS um den Kommunikationskanal zwischen dem Client und dem Server zu verschlüsseln.
  • Unterstützen Zwischenspeichern von Daten auf der Clientseite. Um den clientseitigen Cache mit dem Zustand der Datenbank abzugleichen, stehen zwei Modi zur Verfügung: 1. Merken der Schlüssel, die der Client zuvor angefordert hat, auf dem Server, um ihn über den Relevanzverlust des Eintrags im Client-Cache zu informieren. 2. Der „Broadcasting“-Mechanismus, bei dem der Client bestimmte Schlüsselpräfixe abonniert und der Server ihn benachrichtigt, wenn sich die Schlüssel, die unter diese Präfixe fallen, ändern. Der Vorteil des „Broadcasting“-Modus besteht darin, dass der Server keinen zusätzlichen Speicher für die Speicherung einer auf der Clientseite zwischengespeicherten Wertekarte verschwendet. Der Nachteil besteht jedoch darin, dass die Anzahl der übertragenen Nachrichten zunimmt.
  • Der Disque-Nachrichtenbroker, mit dem Sie Redis zur Verarbeitung von Nachrichtenwarteschlangen verwenden können, wurde aus der Grundstruktur entfernt separates Modul.
  • Добавлен Cluster-Proxy, ein Proxy für einen Cluster von Redis-Servern, der es einem Client ermöglicht, die Arbeit mit mehreren Redis-Servern so zu organisieren, als wären sie eine einzelne Instanz. Der Proxy kann Anforderungen an Knoten mit den erforderlichen Daten weiterleiten, Verbindungen multiplexen, den Cluster neu konfigurieren, wenn Knotenausfälle erkannt werden, und Anforderungen ausführen, die sich über mehrere Knoten erstrecken.
  • Die API zum Schreiben von Modulen wurde erheblich verbessert und Redis im Wesentlichen zu einem Framework gemacht, mit dem Sie Systeme in Form von Zusatzmodulen erstellen können.
  • Es wurde ein Replikationsmodus implementiert, bei dem RDB-Dateien nach ihrer Verwendung sofort gelöscht werden.
  • Das PSYNC2-Replikationsprotokoll wurde verbessert, wodurch es möglich wurde, eine teilweise Neusynchronisierung häufiger durchzuführen, indem die Wahrscheinlichkeit erhöht wurde, gemeinsame Offsets für das Replikat und den Master zu identifizieren.
  • Das Laden von RDB-Dateien wurde beschleunigt. Abhängig vom Dateiinhalt liegt die Beschleunigung zwischen 20 und 30 %. Die Ausführung des INFO-Befehls wurde bei einer großen Anzahl verbundener Clients deutlich beschleunigt.
  • Mit der Implementierung komplexer String-Verarbeitungsalgorithmen wurde ein neuer STRALGO-Befehl hinzugefügt. Derzeit ist nur ein LCS-Algorithmus (longest common subsequence) verfügbar, der beim Vergleich von RNA- und DNA-Sequenzen nützlich sein kann.

Source: opennet.ru

Kommentar hinzufügen