JSON -Unterstützung in Redis

JSON -Unterstützung in Redis

Redis erweitert seine vorhandenen Funktionen mit Advanced Modul Support. Es verwendet das Redisjson -Modul, um die JSON -Unterstützung in Redis -Datenbanken bereitzustellen. Das Redisjson -Modul bietet Ihnen eine Schnittstelle zum Lesen, Speichern und Aktualisieren der JSON -Dokumente problemlos.

Redisjson 2.0 bietet eine interne und öffentliche API, die von anderen Modulen, die sich im selben Redis -Knoten befinden, verzehrt werden kann. Es gibt die Fähigkeit, die Module wie die Wiederherstellung zu interagieren, um mit dem Redisjson -Modul zu interagieren. Mit diesen Funktionen kann die Redis-Datenbank als leistungsstarke dokumentorientierte Datenbank wie MongoDB verwendet werden.

Redisjson fehlt immer noch die Indizierungsfunktionen als Dokumentdatenbank. Schauen wir uns einen kurzen Blick darauf an, wie Redis Indexierung für JSON -Dokumente bietet.

Indizierung der Unterstützung für JSON -Dokumente

Eines der Hauptprobleme von Redisjson ist. Redis muss die Indizierung mit Hilfe anderer Module unterstützen. Glücklicherweise ist das Wiederherstellungsmodul bereits vorhanden, das Indizier- und Suchwerkzeuge für Redis -Hashes bietet. Daher veröffentlichte Redis die Redisearch 2.2, was die Indexierung für dokumentbasierte JSON-Daten unterstützt. Mit Redisjsons interner öffentlicher API wurde es ziemlich einfach. Mit der kombinierten Anstrengung von Redisjson- und Redisearch-Modulen kann die Redis-Datenbank die JSON-Daten speichern und indizieren, und die Verbraucher können die JSON-Dokumente lokalisieren, indem sie den Inhalt abfragen, der Redis zu einer hochdokumentierenden dokumentorientierten Datenbank macht.

Erstellen Sie einen Index mit Wiederherstellung

Diebstahl.Der Befehl erstellen wird verwendet, um einen Index mithilfe der Wiederherstellung zu erstellen. Das Schlüsselwort für JSON sollte zusammen mit der FT verwendet werden.Erstellen Sie den Befehl, um sich zu entlassen, dass die vorhandenen oder neu erstellten JSON -Dokumente indiziert werden müssen. Da Redisjson JsonPath unterstützt (aus Version 2.0) Der Schema -Teil dieses Befehls kann mit den JsonPath -Ausdrücken definiert werden. Die folgende Syntax wird verwendet, um einen JSON -Index für JSON -Dokumente im Redis -Datenspeicher zu erstellen.

Syntax:

Ft.Erstellen name_of_index auf JSON Schema jsonpath_expression as [Attribute_name] data_type

Wenn Sie die JSON -Elemente auf Schema -Felder zuordnen, ist es ein Muss, die entsprechenden Schema -Feldtypen zu verwenden, wie in Folgendes gezeigt:

JSON -Dokumentelement Schema -Feldtyp
Saiten Text, Geo, Tag
Zahlen Numerisch
Boolean SCHILD
Array von Zahlen (JSON -Array) Numerisch, Vektor
Reihe von Strings (JSON -Array) Tag, Text
Array von Geo -Koordinaten (JSON -Array) Geo

Zusätzlich werden die Null -Element -Werte und die Nullwerte in einem Array ignoriert. Darüber hinaus ist es nicht möglich, die JSON -Objekte mit der Wiederherstellung zu indizieren. Verwenden Sie in solchen Situationen jedes Element des JSON -Objekts als separates Attribut und indizieren sie.

Der Indexierungsprozess wird asynchron für die vorhandenen JSON -Dokumente ausgeführt, und die neu erstellten oder geänderten Dokumente werden synchron am Ende des Befehls "create" oder "update" indexiert.

Besprechen wir im folgenden Abschnitt, wie Sie Ihrem Redis -Datenspeicher ein neues JSON -Dokument hinzufügen können.

Erstellen Sie ein JSON -Dokument mit Redisjson

Das Redisjson -Modul liefert den JSON.Set und JSON.Arrappend -Befehle zum Erstellen und Ändern der JSON -Dokumente.

Syntax:

JSON.SATZ $

Anwendungsfall - Indexierung der JSON -Dokumente, die die Mitarbeiterdaten enthalten

In diesem Beispiel werden wir drei JSON -Dokumente erstellen, die die Mitarbeiterdaten für das ABC -Unternehmen enthalten. Als nächstes werden diese Dokumente mithilfe der Wiederherstellung indiziert. Schließlich wird ein bestimmtes Dokument mit dem neu erstellten Index abgefragt.

Vor dem Erstellen der JSON -Dokumente und Indizes in Redis sollten die Module Redisjson und Redisearch installiert werden. Es gibt einige Ansätze zu verwenden:

  • Redis Stack wird mit Redisjson- und Redisearch -Modulen geliefert, die bereits installiert sind. Sie können das Redis Stack Docker -Image verwenden, um eine Redis -Datenbank auszuführen, die aus diesen beiden Modulen besteht.
  • Installieren Sie die Redis 6.x oder spätere Version. Installieren Sie dann den Redisjson 2.0 oder eine spätere Version zusammen mit der Redisearch 2.2 oder eine spätere Version.

Wir verwenden den Redis -Stack, um eine Redis -Datenbank mit Redisjson- und Redisearch -Modulen auszuführen.

Schritt 1: Konfigurieren Sie den Redis -Stapel

Lassen Sie uns den folgenden Docker-Befehl ausführen, um das neueste Redis-Stack-Docker-Bild herunterzuladen und eine Redis-Datenbank in einem Docker-Container zu starten:

Udo Docker Run -d -name Redis -Stack -Latest -P 6379: 6379 -P 8001: 8001 Redis/Redis -Stack: Neueste

Wir weisen den Containernamen zu, Redis-Stack-Latest. Darüber hinaus der interne Containeranschluss 6379 wird dem lokalen Maschinenport zugeordnet 8001 sowie. Der Redis/Redis-Stack: Neueste Bild wird verwendet.

Ausgang:

Als nächstes führen wir den Redis-Cli wie folgt gegen die laufende Redis-Container-Datenbank aus:

sudo docer exec -it redis-stack-latest redis-cli

Ausgang:

Wie erwartet beginnt die Redis -Cli -Eingabeaufforderung. Außerdem können Sie die folgende URL in den Browser eingeben und prüfen, ob der Redis -Stack ausgeführt wird:

LOCALHOST: 8001

Ausgang:

Schritt 2: Erstellen Sie einen Index

Vor dem Erstellen eines Index müssen Sie wissen, wie Ihre JSON -Dokumentelemente und Ihre Struktur aussehen. In unserem Fall sieht die JSON -Dokumentstruktur wie Folgendes aus:


"Name": "John Derek",
"Gehalt": "198890",

Wir indizieren das Namensattribut jedes JSON -Dokuments. Mit dem folgenden Befehl zur Wiederherstellung wird der Index erstellt:

Ft.Erstellen empnameidx auf JSON Schema $.Name als Mitarbeitername Text

Ausgang:

Seit der Redisearch unterstützt JsonPath -Ausdrücke aus der Version 2.2, Sie können das Schema mit den JsonPath -Ausdrücken wie im vorherigen Befehl definieren.

$.Name

NOTIZ: Sie können mehrere Attribute in einer einzigen FT angeben.Befehl erstellen wie im Folgenden gezeigt:

Ft.Erstellen Sie Empidx auf JSON Schema $.Name als Employeename Text $.Gehalt als Mitarbeiter von Arbeitnehmern

Schritt 3: Fügen Sie JSON -Dokumente hinzu

Fügen wir drei JSON -Dokumente mit dem JSON hinzu.Stellen Sie den Befehl wie folgt fest. Da der Index bereits erstellt wurde, ist der Indexierungsprozess in dieser Situation synchron. Die neu hinzugefügten JSON -Dokumente sind sofort im Index verfügbar:

JSON.SET EMP: 1 $ '"Name": "Harris Rauf", "Gehalt": 10000'
JSON.SET EMP: 2 $ '"Name": "Mark Wood", "Gehalt": 34000'
JSON.SET EMP: 3 $ '"Name": "Mary Jane", "Gehalt": 23000'

Ausgang:

Um mehr über die Manipulation der JSON -Dokumente mit Redisjson zu erfahren, schauen Sie sich hier an.

Schritt 4: Abfragen Sie die Mitarbeiterdaten mit dem Index ab

Da Sie den Index bereits erstellt haben, sollten die zuvor erstellten JSON -Dokumente bereits im Index verfügbar sein. Diebstahl.Der Suchbefehl kann verwendet werden, um jedes Attribut zu durchsuchen, das in der definiert ist empnameidx Schema.

Suchen wir nach dem JSON -Dokument, das das Wort "markieren" in der enthält Name Attribut.

Ft.Suche empnameidx '@Employeename: mark'

Sie können auch den folgenden Befehl verwenden:

Ft.Suche empnameidx '@Employeename: (mark)' '

Ausgang:

Wie erwartet wird das JSON -Dokument im Schlüssel gespeichert. EMP: 2 ist zurück gekommen.

Fügen wir ein neues JSON -Dokument hinzu und überprüfen, ob es ordnungsgemäß indiziert ist. Der JSON.Der Befehlsbefehl wird wie folgt verwendet:

JSON.SET EMP: 4 $ '"Name": "Mary Nickolas", "Gehalt": 56000'

Ausgang:

Wir können das hinzugefügte JSON -Dokument mit dem JSON abrufen.Holen Sie sich den Befehl wie folgt:

JSON.Holen Sie sich EMP: 4 $

NOTIZ: Die Syntax des JSON.Befehl erhalten lautet wie folgt:

JSON.ERHALTEN $

Ausgang:

Lassen Sie uns die FT laufen lassen.Suchbefehl, um nach den Dokument (n) zu suchen, die das Wort enthalten "Maria" im Name Attribut von JSON.

Ft.Suche empnameidx '@Employeename: Mary'

Ausgang:

Da wir zwei JSON -Dokumente haben, die das Wort enthalten Maria im Name Attribut, zwei Dokumente werden zurückgegeben.

Es gibt verschiedene Möglichkeiten, Ihre Suche und Indexerstellung mithilfe des Wiederherstellungsmoduls durchzuführen, und diese werden in dem anderen Artikel erörtert. Dieses Leitfaden konzentriert sich hauptsächlich auf eine hohe Übersicht und das Verständnis der Indexierung von JSON-Dokumenten in Redis mithilfe von Redisearch- und Redisjson-Modulen.

Abschluss

In diesem Handbuch wird erläutert, wie leistungsfähig die Redis -Indexierung ist, wo Sie basierend auf ihren Inhalten mit geringer Latenz nach den JSON -Daten abfragen oder suchen können.

Befolgen Sie die folgenden Links, um weitere Details zu Redisjson- und Redisearch -Modulen zu erhalten:

  • Redisjson: https: // Redis.io/docs/stack/json/
  • Redisearch: https: // Redis.io/docs/stack/such/