Die Community Valkey kündigte die Veröffentlichung an Valkey 9.1 — einer neuen stabilen Version eines hochleistungsfähigen Schlüssel-Wert-Speichers mit offenem Quellcode (BSD-Lizenz), der verschiedene Nutzungsszenarien unterstützt, wie z. B. Caching und Message Queues, und auch als primäre Datenbank fungieren kann. Das Projekt wird von der Linux Foundation unterstützt, was seine ständige Verfügbarkeit als Open Source garantiert.
Das Projekt ist ein Fork von Redis und wurde nach Änderungen in seiner Lizenzierung.
Dieses Release enthält neue Funktionen, Verbesserungen in Bezug auf Sicherheit, Monitoring, Leistung und Effizienz des Tools. An der Vorbereitung des Releases waren mehr als 80 Personen beteiligt.
Wesentliche Änderungen
Lua wurde in ein separates Modul ausgelagert.
In Valkey 9.1 wurde die Lua-Skriptsprache vom Hauptserver getrennt und in ein eigenständiges Modul verschoben. Diese Trennung reduziert die Angriffsfläche des Valkey-Kerns und ermöglicht es Administratoren, Lua vollständig abzuschalten, wenn Skripte darin nicht verwendet werden. Um es einfacher zu machen, zu verstehen, welche Skript-Engines im System geladen sind, erhielt der Befehl INFO einen neuen Abschnitt in der Antwort — Scripting Engines.Neue Sicherheitsupdates.
Die stabile Version 9.1.0 enthält Behebungen für drei Sicherheitsanfälligkeiten: use-after-free im Client-Unlock-Mechanismus, unzulässiger Speicherzugriff im Befehl 7RESTORE sowie use-after-free während der vollständigen Synchronisierung der Lua-/function-Codes mit Ausführungsübergabe. In den Release-Notizen sind sie als CVE-2026-23479, CVE-2026-25243 und CVE-2026-23631 aufgeführt.Datenbankebene ACL.
Ein Zugangskontrollsystem auf Ebene einzelner Datenbanken wurde hinzugefügt. Dies ermöglicht eine feinere Aufteilung der Berechtigungen in Mehrbenutzerkonfigurationen und beschränkt sich nicht nur auf globale Zugriffsregeln auf Ebene des gesamten Valkey-Instances.Automatisches Neuladen von TLS-Zertifikaten.
Valkey 9.1 erhielt die Unterstützung für automatisches Neuladen von TLS-Zertifikaten. Für Administratoren bedeutet dies weniger manuelle Operationen bei der Rotation von Zertifikaten und eine bequemere Nutzung von gesicherten Installationen.Neuer Befehl HGETDEL.
Der Befehl erhält atomar ein oder mehrere Felder aus der Hash-Struktur und entfernt sie. Der praktische Nutzen besteht in Skripten, die sich wie Warteschlangen oder einmalige Datenverbräuche verhalten, bei denen zuvor HGET und HDEL über eine Transaktion kombiniert werden mussten.Neues MSETEX-Kommando.
MSETEX ermöglicht es, mehrere Schlüssel mit einer gemeinsamen Lebensdauer in einem einzigen Aufruf zu setzen. Früher waren dafür mehrere SETEX-Aufrufe oder eine Kombination von SET und EXPIRE über die Pipeline erforderlich. Das neue Kommando reduziert die Anzahl der Aufrufe und vereinfacht den typischen Code für Sessions und temporäre Daten.Neues CLUSTERSCAN-Kommando.
In Clustern gibt es jetzt ein einheitliches Kommando zum Scannen von Schlüsseln über alle Knoten. Früher mussten Kunden selbst SCAN auf jedem Knoten ausführen und die Ergebnisse zusammenführen. CLUSTERSCAN vereinfacht Client-Bibliotheken, Admin-Tools und betriebliche Aufgaben wie das Suchen von Schlüsseln nach Mustern oder Typen im gesamten Cluster.Optimierung des Speicherverbrauchs durch Strings.
Durch interne Optimierungen von Zeigern für Strings, die kürzer als 128 Byte sind, wird eine Reduzierung des Speicherverbrauchs um bis zu 20 % vermeldet. Dies ist besonders wichtig für typische Cache-Lasten, bei denen eine große Anzahl kleiner Werte gespeichert wird.Weniger Speicher für Sorted Sets.
Optimierungen der Skiplist-Strukturen reduzieren den Speicherverbrauch für Sorted Sets um bis zu 10 %. Zusätzlich wurden die Operationen auf sortierten Mengen beschleunigt, einschließlich Anfragen wie ZRANGEBYSCORE und ZRANGEBYLEX.Beschleunigte Arbeit mit Rehashing.
Die interne Neuverteilung von Hash-Tabellen, die häufig beim Wachstum des Keyspace auftritt, wurde optimiert, um Verzögerungen zu reduzieren. In den Versionshinweisen wird auch eine Verringerung der Latenzspitzen durch inkrementelle Seitenfreigabe erwähnt.Verbessertes I/O-Threading-Modell.
Im Release-Kandidaten 9.1.0-rc2 wurde das Modell der Interaktion von I/O-Threads unter Verwendung von lockfreien Warteschlangen überarbeitet. In den Notizen wird eine Steigerung der Durchsatzrate um 8–17 % angegeben.Beschleunigung von GET und SET.
Valkey verwendet jetzt standardmäßig Hardware-Uhren, wo immer dies möglich ist, was die Überkopfkosten von systemeigenen Zeitaufrufen senkt. Das Projekt gibt ein Leistungsplus von bis zu 3 % für GET und SET insgesamt an.Schnellere Massenlöschungen.
Bei Operationen wie SREM, ZREM und HDEL pausiert Valkey jetzt vorübergehend die interne Größenanpassung von Hash-Tabellen, um unnötiges Rehashing zu vermeiden und das massenhafte Löschen von Elementen zu beschleunigen.Effizientere Replikation bei AOF.
Beim Erstellen eines Replikats mit aktivierter AOF wird nun die erhaltene RDB-Datei wiederverwendet, anstatt einen neuen Snapshot für die anfängliche AOF-Basisdatei zu generieren. Dies sollte die zusätzliche Belastung beim Bereitstellen von Replikaten verringern.Verbesserungen von valkey-cli und valkey-benchmark.
In valkey-cli wurde die Unterstützung für die atomare Slot-Migration über den Parameter —cluster-use-atomic-slot-migration für die Operationen —cluster rebalance und —cluster reshard hinzugefügt. In valkey-benchmark wurden die Ausgabe der RPS-Verteilung sowie die Parameter —warmup und —duration hinzugefügt, was das Performance-Testing besser steuerbar macht.
Separat zusammen mit Valkey 9.1 in der Ecosystem werden verwandte Projekte gefördert: Valkey Admin zur visuellen Verwaltung von Clustern, Valkey Search 1.2 mit Volltextsuche, numerischen Filtern, Tags und Vektor-Suche, sowie die Client-Bibliothek Valkey GLIDE.
Valkey 9.1 ist ein bemerkenswertes Update aus betrieblicher Sicht: weniger Speicher bei typischen Strukturen, niedrigere Latenzen bei internen Umstrukturierungen, neue Befehle für Cluster und temporäre Daten sowie ein saubereres Sicherheitsmodell für Produktionsinstallationen.
Quelle: linux.org.ru
