Veröffentlichung von Redis DBMS 6.0

Vorbereitet Release der Datenbankverwaltungssysteme Redis 6.0, die zur Klasse der NoSQL-Systeme gehört. Redis bietet ähnliche Funktionen wie Memcached für die Speicherung von Daten im Schlüssel/Wert-Format, erweitert durch die Unterstützung strukturierter Datenformate wie Listen, Hashes und Mengen sowie die Möglichkeit, serverseitige Skripte in Lua auszuführen. Der Projektcode wird geliefert unter der BSD-Lizenz. Zusätzliche Module, die erweiterte Funktionen für Unternehmenskunden anbieten, wie RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, sind seit letztem Jahr geliefert werden unter der proprietären RSAL-Lizenz. Die Entwicklung offener Varianten dieser Module unter der AGPLv3-Lizenz wird durch das Projekt GoodFORM.

Im Gegensatz zu Memcached bietet Redis eine dauerhafte Speicherung von Daten auf der Festplatte und gewährleistet die Integrität der Datenbank im Falle eines unerwarteten Absturzes. Die Quelltexte des Projekts werden unter der BSD-Lizenz verbreitet. Client-Bibliotheken sind für die meisten gängigen Programmiersprachen verfügbar, einschließlich Perl, Python, PHP, Java, Ruby und Tcl. Redis unterstützt Transaktionen, die es ermöglichen, eine Gruppe von Befehlen in einem Schritt auszuführen, wobei Konsistenz und Reihenfolge garantiert sind (Befehle anderer Anfragen können sich nicht dazwischenschalten), und im Falle von Problemen wird einem ermöglicht, Änderungen zurückzusetzen. Alle Daten werden vollständig im Arbeitsspeicher zwischengespeichert.

Zur Verwaltung der Daten stehen Befehle wie Inkrement/Dekrement, Standardoperationen auf Listen und Mengen (Vereinigung, Schnittmenge), Umbenennung von Schlüsseln, Mehrfachabfragen und Sortierfunktionen zur Verfügung. Es werden zwei Speicherungsmodi unterstützt: periodische Datensynchronisation auf die Festplatte und das Führen eines Änderungsprotokolls auf der Festplatte. Im zweiten Fall wird die vollständige Integrität aller Änderungen garantiert. Es ist auch möglich, eine Master-Slave-Replikation der Daten auf mehrere Server zu organisieren, die im nicht blockierenden Modus erfolgt. Ein Publish/Subscribe-Nachrichtenaustauschmodus ist ebenfalls verfügbar, bei dem ein Kanal geschaffen wird, dessen Nachrichten an abonnierte Clients verbreitet werden.

Hauptmerkmale Verbesserungen, die in Redis 6.0 hinzugefügt wurden:

  • Standardmäßig ist das neue Protokoll RESP3 vorgeschlagen, aber die Verbindung wird im RESP2-Modus gestartet, und der Client wechselt nur dann zum neuen Protokoll, wenn bei der Aushandlung der Verbindung der neue Befehl HELLO verwendet wurde. RESP3 ermöglicht das direkte Zurückgeben komplexer Datentypen, ohne dass eine Konvertierung von allgemeinen Arrays auf der Client-Seite erforderlich ist, und trennt die zurückgegebenen Typen.
  • Unterstützung für Zugriffssteuerungslisten (ACL), die es ermöglichen, genau zu definieren, welche Operationen ein Client ausführen kann und welche nicht. ACL bieten auch die Möglichkeit, sich gegen mögliche Fehler bei der Entwicklung abzusichern. Beispielsweise kann einem Handler, der nur die Operation BRPOPLPUSH ausführt, die Ausführung anderer Operationen untersagt werden, und falls in dem Arbeitscode versehentlich der hinzugefügte Aufruf FLUSHALL während der Debugging-Phase vergessen wird, führt dies nicht zu Problemen. Die Implementierung von ACL ist mit keinen zusätzlichen Kosten verbunden und hat praktisch keinen Einfluss auf die Leistung. Für ACL sind auch Schnittstellenmodule vorbereitet, die die Erstellung eigener Authentifizierungsmethoden ermöglichen. Um alle dokumentierten Verstöße gegen die ACL anzuzeigen, steht der Befehl „ACL LOG“ zur Verfügung. Um unvorhersehbare Sitzungsschlüssel zu generieren, wurde der Befehl „ACL GENPASS“ hinzugefügt, der HMAC basiert auf SHA256 verwendet.
  • Support SSL/TLS zur Verschlüsselung des Kommunikationskanals zwischen Client und Server.
  • Support Caching von Daten auf der Client-Seite. Für die Abstimmung des Caches auf der Client-Seite mit dem Zustand der Datenbank stehen zwei Modi zur Verfügung: 1. Speicherung der Schlüssel auf dem Server, die zuvor vom Client angefordert wurden, um ihn über die Ungültigkeit des Eintrags im Client-Cache zu informieren. 2. Der Mechanismus „Broadcasting“, bei dem der Client sich auf bestimmte Schlüsselpräfixe abonniert und der Server ihn im Falle von Änderungen an den Schlüsseln, die unter diese Präfixe fallen, informiert. Der Vorteil des „Broadcasting“-Modus besteht darin, dass auf dem Server kein zusätzlicher Speicher für die Speicherung der Karte der im Client-Cache gespeicherten Werte benötigt wird, während der Nachteil die erhöhte Anzahl übertragener Nachrichten ist.
  • Der Nachrichtenbroker Disque, der die Verwendung von Redis zur Verarbeitung von Nachrichtenwarteschlangen ermöglicht, wurde aus dem Basisangebot in ein separates Modul.
  • Hinzugefügt Cluster Proxy, ein Proxy für ein Redis-Servercluster, der es ermöglicht, den Client mit mehreren Redis-Servern wie mit einer einzigen Instanz zu interagieren. Der Proxy kann Anfragen an Knoten mit den benötigten Daten weiterleiten, Verbindungen multiplexieren, das Cluster im Falle von Knotenfehlern neu konfigurieren und Anfragen ausführen, die mehrere Knoten abdecken.
  • Die API zur Erstellung von Modulen wurde erheblich verbessert, wodurch Redis im Wesentlichen zu einem Framework wurde, das die Erstellung von modulbasierten Systemen ermöglicht.
  • Ein Replikationsmodus wurde implementiert, bei dem RDB-Dateien sofort nach ihrer Verwendung gelöscht werden.
  • Das Replikationsprotokoll PSYNC2 wurde verbessert, was eine häufigere teilweise Resynchronisation ermöglicht, da die Chancen zur Feststellung einer gemeinsamen Verschiebung zwischen Replica und Master erhöht wurden.
  • Die Ladezeiten der RDB-Dateien wurden beschleunigt. Je nach Dateiinhalten beträgt die Beschleunigung zwischen 20 und 30%. Die Ausführung des INFO-Befehls wurde erheblich beschleunigt, wenn eine große Anzahl von verbundenen Clients vorhanden ist.
  • Ein neuer Befehl STRALGO wurde hinzugefügt, der komplexe Algorithmen zur Verarbeitung von Zeichenfolgen implementiert. Derzeit ist nur ein Algorithmus verfügbar: LCS (longest common subsequence), der bei der Vergleich von RNA- und DNA-Sequenzen nützlich sein kann.

Quelle: opennet.ru

Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server 🔥 Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster