Redis hincrby

Redis hincrby

Redis -Hash -Manipulation

Redis Hash kann als Feldwertpaardatenstruktur identifiziert werden. Dies kann in einem bestimmten Redis -Schlüssel gespeichert werden, wie in der folgenden Abbildung gezeigt:

Normalerweise können die Hash -Feldwerte String-, Ganzzahl- und Float -Daten speichern. Einer der atomaren Operationen, die wir an Hashes durchführen können.

Der Befehl hincrby wird verwendet, um die Inkrement/Dekrementierung eines Ganzzahlwerts durchzuführen. In den folgenden Abschnitten werden wir mehr über die praktische Verwendung des Befehls Hincrby Hash diskutieren.

Der Befehl hincrby

Syntax:
Hincrby redis_key Hash_field_Name Increment_By_Value

redis_key: Der Taste der obersten Ebene des Redis Store

Hash_field_Name: Die eindeutige Kennung des Hash -Feldes

Increment_By_Value: Der Ganzzahlwert des Inkrementarguments

Der Rückgabewert des Befehls hincrby ist eine Ganzzahl. Es ist der Wert des Hash -Feldes, nachdem die Operation durchgeführt wurde. Der Increment_By_Value Das Argument stützt die 64-Bit-Signierzahlen, die die Übergabe sowohl positiver als auch negativer Zahlen ermöglichen.

Wenn das angegebene Hash -Feld nicht existiert

Nehmen wir an, wir haben einen Redis -Hash -Schlüssel Benutzer: 001 mit einem Feld benannt Ausweis. Der Wert der Ausweis Feld ist 10. Wenn wir versuchen, den Hash-Wert für einen nicht existierenden Schlüssel um 5 zu erhöhen Alter, Redis wird ein neues Feld erstellen Alter und weisen Sie seinen Wert 5 zu.

Wenn der angegebene Redis -Schlüssel nicht vorhanden ist

Angenommen, wir bestehen den Schlüssel als Benutzer: 002 zum Befehl hincrby mit dem Feld Alter und der Inkrementwert von 10. Seit der Benutzer: 002 Der Schlüssel ist im Redis -Store nicht verfügbar, sondern erstellt einen neuen Schlüssel Benutzer: 002 mit einem Altersfeld. Der Wert des Altersfeldes wird sein 10 Welches ist der bestandene Inkrementargumentwert.

Praktische Verwendung

Es gibt viele reale Anwendungsfälle des Hincrby-Hash-Befehls:

  • Besuchen Sie Zähler in Webanwendungen
  • Neue Benutzer-ID-Zuordnung
  • Blockieren mehrerer Loginversuche
  • Verfolgen Sie die Nutzungs- und Abrechnungsstatus
  • Aktualisieren Sie Einkaufswageneinheiten

Der Hauptvorteil des Hincrby -Vorgangs besteht. Sie können den Hash -Wert des Redis Store direkt aktualisieren. Dies macht die Operationen sehr schnell.

Beispiel 01 - Erfassen Sie die Nutzung und Kosten pro Benutzer

Nehmen wir an, wir müssen die Nutzungs- und Kostendaten pro Benutzer in einem bestimmten System speichern. Daher identifizieren wir jeden Benutzer mit einem Redis -Schlüssel. Die Nutzung und die Kosten werden die Hash -Felder für diesen bestimmten Redis -Schlüssel sein.

HMSET -Benutzer: 001 Nutzung 50 kosten 1500

Wir können den Befehl HMSET Hash verwenden, um die mehreren Felder für Hash festzulegen.

Überprüfen Sie, ob der Benutzer: 001 Hash im Datenspeicher ordnungsgemäß gespeichert ist.

HGetall -Benutzer: 001

Ausgang:

Angenommen, der Benutzer hat weitere 10 Ressourceneinheiten innerhalb des Systems verwendet und es würde weitere 500 Dollar kosten. Jetzt können wir den Befehl hincrby Hash problemlos verwenden, um die Daten für zu aktualisieren Benutzer: 001.

Hincrby -Benutzer: 001 Nutzung 10
Hincrby -Benutzer: 001 kostet 500

Ausgang:

Lassen Sie uns den Benutzer überprüfen: 001 Hash -Werte.

HGetall -Benutzer: 001

Ausgang:

Beispiel 02 - Verringerung der Zählung der Einheiten im Einkaufswagen

In den Einkaufswagen müssen wir immer die Dekrementvorgänge für die Anzahl der Elemente ausführen, wenn der Benutzer einen Artikel entfernt. Lassen Sie uns den Artikel für die aufbewahren Benutzer: 002.

HMSET -Benutzer: 002 itema 10 itemb 5

In diesem Fall haben wir Itema und ItemB als 10 bzw. 5 zugewiesen. Lassen Sie uns den Benutzer überprüfen: 002 Daten.

HGetall -Benutzer: 002

Ausgang:

Nehmen wir an, dass die Benutzer: 002 Entfernt 2 Elemente und 5 Artikel. Der Befehl hincrby kann verwendet werden, um diesen Dekrementbetrieb durch die Übergabe von -2 und -5 Ganzzahlen als Inkrementargumente durchzuführen.

Hincrby -Benutzer: 002 itema -2
Hincrby -Benutzer: 002 itemb -5

Ausgang:

Der Befehl hincrby ist leistungsstark und effizient, wenn sowohl die Inkrement- als auch die Dekrementoperationen mit demselben Befehl mit einem signierten Inkrementargument durchgeführt werden können. Dieser Befehl hat eine konstante Zeitkomplexität. Daher ist es sehr schnell, die Inkrement-/Decrement -Operationen bei Hashes durchzuführen.

Abschluss

Redis kann verschiedene Arten von Datenstrukturen für einen bestimmten Schlüssel speichern. Die Hashes sind eine der beliebtesten Datenstrukturen, die in den Redis -Datenbanken verwendet werden. Hashes können verwendet werden, um einfache Objekte und Daten effektiv darzustellen und zu manipulieren. Redis unterstützt mehrere Hash -Operationen. Hincrby ist einer der beliebten Befehle, um die Ganzzahlwerte für ein bestimmtes Hash -Feld zu erhöhen und zu verringern. Es unterstützt die 64-Bit-Zahlen als Inkrementwert. Daher können sowohl die Inkrement- als auch die Dekrementoperationen mit demselben Befehl durchgeführt werden.