Datenbank: Redis startet öffentliche Preview von RediSearch 2

Die als sekundärer Index umgesetzte Search Engine bekommt eine neue Architektur und soll entwicklerfreundlicher sein als RediSearch 1.x

In Pocket speichern vorlesen Druckansicht
Datenbank: Redis startet öffentliche Preview von RediSearch 2
Lesezeit: 3 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Redis Labs hat die erste öffentliche Preview von RediSearch 2.0 veröffentlicht. Der sekundäre Index zum Durchsuchen der Daten setzt auf eine komplett neue Architektur, die auf eine bessere Performance und eine erhöhte Skalierbarkeit abzielt. Damit verbunden ist eine neue API, die entwicklerfreundlicher sein soll als die des Vorgängers.

RediSearch 1.x hat die Daten über den FT.ADD-Befehl durch den Index geschrieben. In Version 2.0 erfolgt das Schreiben über HSET, und RediSearch verfolgt die Hashes der geschriebenen Daten und schreibt Änderungen synchron in den eigenen Index.

RediSearch 2.0 bringt eine neue Architektur mit, durch die das Schreiben durch den Index entfällt.

(Bild: Redis Labs)

Durch die neue Arbeitsweise lässt sich das Modul einfacher an eine vorhandene Redis-Datenbank anbinden, da die Migration der Daten ebenso entfällt wie der zusätzliche Befehl zum Hinzufügen neuer Daten zum Index. Die Integration in bestehende Datenbanken ist wohl ohne deren Neustart möglich.

Eine weitere Änderung in Version 2.0 ist, dass der RediSearch-Index nicht mehr wie in 1.x im Keyspace liegt, einem Directory zum Verwalten der Schlüssel. Das ermöglicht laut dem Team die geografische Replikation über die sogenannte Active-Active Geo-Distribution, einer Verteilung, die auf Conflict-free Replicated Data Types (CRDTs) setzt. Sie sollen Konflikte vermeiden, die durch parallele Änderungen in verteilten Daten auftreten können.

Durch die neue Architektur verfolgt RediSearch die Änderung der Hashes nach dem Replizieren der Daten, wodurch auch die Indizes der verteilten RediSearch-Instanzen schließlich konsistent sind.

Entwickler finden aufgrund der geänderten Architektur zahlreiche Anpassungen an der API von RediSearch. Vor allem der Befehl zum Erstellen des Index bringt zahlreiche Änderungen mit, die sich im Detail dem Blogbeitrag zum ersten Meilenstein von RediSearch 2 entnehmen lassen.

Da der Index nicht mehr im Keyspace liegt, funktionieren keine Aufrufe mehr, die den Index-Key verwenden. Als Ersatz dient der neue Befehl FT._LIST, der alle Indizes der Datenbank auflistet. Außerdem benötigt jeder Index nun einen Präfix und/oder Filter, die festlegen, welche Dokumente RediSearch automatisch indizieren soll.

Redis Labs hat alle FT-Befehle auf die jeweilige Pendants in Redis gemapped: FT.ADD auf HSET, FT.DEL auf DEL, FT.GET auf HGETALL und schließlich FT.MGET auf HGETALL. Damit sollen entsprechende 1.x-Anwendungen mit RediSearch 2 ohne Änderungen weiter funktionieren.

Die Open-Source-Variante von RediSearch 2 ist nicht mehr auf einen Shard begrenzt. Mit der aktuellen Version ist der RSCoordinator zum Verwalten einer verteilten Suche auf GitHub verfügbar. Das Modul steht unter der Redis Source Available License (RSAL), die Redis Labs im Zuge der Umstellungen der Lizenzpolitik Anfang 2019 eingeführt hatte.

Weitere Details sowie Benchmarks lassen sich dem Redis-Blog entnehmen. Ein weiterer Blogbeitrag gibt eine Einführung in den Einsatz von RediSearch 2.0, und auf GitHub findet sich ein Tutorial.

(rme)