Redis Hashes
Die Karte ist eine weit verbreitete Datenstruktur im Kontext der Programmierung. Es ist eine weit verbreitete Technik, um die Schlüsselwertpaare zu speichern. Jeder Schlüssel kartiert zu einem bestimmten Wert, wie im Folgenden gezeigt:
Redis -Hashes folgen der gleichen internen Struktur. Sie ermöglichen es Ihnen jedoch nicht, komplexe Werttypen wie Set, List oder Hash zu speichern. Es gibt einige Möglichkeiten, die Hash -Feldwerte auf die anderen komplexen Datentypen zu richten, aber es ist nicht einfach.
Praktische Verwendung von Redis -Hashes
Redis -Hashes sind in zwei verschiedenen Szenarien sehr effektiv:
Objektdarstellung unter Verwendung von Redis -Hashes
In der Programmierung repräsentieren die Objekte die realen Entitäten mit ihren Zuständen und Verhaltensweisen. Normalerweise hat ein Objekt eine Bezeichnung (Name) und interne Eigenschaften, wie im Folgenden dargestellt:
Redis -Hashes können diese Art von Objekt in seinem Speicher speichern. Wir wissen, dass Redis der Schlüsselwertpaarspeicher ist. Daher kann das vorherige Objekt wie im Folgenden dargestellt werden:
Taste : Benutzer: 001
Wert : Interne Eigenschaften als Redis -Hash
Die detailliertere Darstellung wird im Folgenden dargestellt.
Taste : Benutzer: 001
Wert : "Name" => "Mike"
"Alter" => "35"
"Land" => "USA"
"IsMarzt" => "true"
Der grün gefärbte Teil ist ein Redis -Hash -Typ -Wert. In diesem Fall haben wir vier Felder in unserem Hash erhalten und der Schlüssel ist Benutzer: 001.
Speichern Sie kleine Datenwerte kompakt
Stellen Sie sich vor, wir werden die 100000 Feldwertpaare in einer Redis-Datenbank speichern. Der typischste Weg ist, die 100000 Tasten auf obersten Ebenen zu erstellen, die auf die relevanten Werte hinweisen. Diese Methodik wird nicht effizient sein, wie Sie vielleicht denken. Daher können wir die Hashes verwenden, um die Leistung zu optimieren.
Es gibt einen Leistungsgewinn bei Hashes, wenn ein Hash eine kleine Anzahl von Feldern hat. Redis erhöht die Zugangseffizienz um eine beträchtliche Menge. Wir nennen die kleine Hash -Speicheroptimierung dieser Redis. Daher können wir die 1000 Hashes jeweils mit 100 internen Feldern halten, wie im Folgenden dargestellt:
Das Beste an Hashes ist, dass sie bis zu 2^32-1 Feldwertpaare im einfachen Textformat speichern können. Es ist eine große Menge an Daten, mehr als 4 Milliarden.
Redis Hash befiehlt
Mit Redis können Sie Operationen auf Hashes ausführen. Es gibt rund 15 Hash -Befehle wie Hset, Hexisten, HGet, HGetall usw. Es gibt einige Atomoperationen, die für numerische Hash -Feldwerte durchgeführt werden können. Es ist das Atominkrement und die Dekrement.
Die Hexisten befehlen
Mit dem Befehl hexisten werden überprüft, ob ein bestimmtes Feld im jeweiligen Hash in einem bestimmten Schlüssel verfügbar ist. Dieser Befehl hat eine konstante Zeitkomplexität, die mit Big O (1) bezeichnet wird. Daher ist es sehr effizient zu verwenden.
Syntax:
Hexisten KEY_NAME FIELD_NAME
KEY_NAME : Dies ist der Taste der Redis -Top -Ebene dieses Hashs.
Feldname : Dies ist der Hash -Feldname.
Befehlsrückgabewert
Der Befehl hexisten gibt einen Ganzzahlwert von 1 oder 0 zurück, basierend auf den Befehlsbewertungsergebnissen. Es kehrt zu 1 zurück, wenn das Feld im angegebenen Hash verfügbar ist. Wenn das Feld oder der Hash -Schlüssel nicht verfügbar ist, kehrt es zu 0 zurück.
Praktische Verwendung von Hexistenkommando
Erstellen wir einen Hash mit einem Feld und überprüfen, wie der Befehl funktioniert. Wir können den Befehl HSET verwenden, um einen Hash mit einem Feldwertpaar zu erstellen.
Hset Benutzer: 1 Name Mike
Als nächstes prüfen wir, ob der Hash in der Redis -Datenbank erfolgreich hinzugefügt wurde. Der Befehl hGetall kann verwendet werden, um alle Feldwertpaare für einen bestimmten Hash-Schlüssel abzurufen.
HGetall -Benutzer: 1
Ausgang:
Lassen Sie uns nun das Behandlungsverhalten des Hexisten in diesem Hash überprüfen:
Hexisten Benutzer: 1 Name
In diesem Szenario ist der Benutzer: 1 der Hash -Schlüssel. Der Name ist der Hash -Feldname. Da das Feld des Namens im Benutzer verfügbar ist: 1 Hash, sollte es zu 1 zurückkehren.
Überprüfen wir den Befehl mit einem Feld, das im gegebenen Hash nicht verfügbar ist.
Hexisten Benutzer: 1 Alter
In diesem Fall ist das Altersfeld im Benutzer nicht verfügbar: 1 Hash. Daher ist die Ausgabe 0.
Auf diese Weise können Sie die Hash -Felder für ihre Existenz in einem bestimmten Hash -Schlüssel manipulieren. Dies ist eine sehr zeitlich effiziente Operation und hilfreich bei Objektmanipulationen in Redis-Datenbanken. Es braucht eine konstante Zeit, um die Existenz des 1. Feldes oder des 100. Feldes zu überprüfen. Daher wird empfohlen, Redis -Hashes zu verwenden, wenn Sie Objekte oder einfache Daten speichern müssen.
Abschluss
Redis kann verschiedene Arten von Datenstrukturen für einen bestimmten Schlüssel speichern. Die Hashes sind eine der beliebtesten Datenstrukturen, die in Redis -Datenbanken verwendet werden. Hashes können verwendet werden, um die Objekte und Daten effektiv darzustellen und zu manipulieren. Redis unterstützt mehrere Hash -Operationen. Die Hexisten sind einer der beliebten Befehle, um die Existenz eines bestimmten Hash -Feldes in einem Hash -Schlüssel zu überprüfen.