Redis Integer Manipulation
Der String -Typ ist der grundlegendste Datentyp, den Redis bietet. Redis -Saiten können Texte, serialisierte JSON -Objekte, Bilder, Audio und sogar numerische Werte speichern. In diesem Leitfaden konzentrieren wir uns auf die numerischen Werte und die Manipulation von Ganzzahlen. Redis unterstützt die separaten Ganzzahl -Datentypen nicht, um die numerischen Daten zu halten. Wenn ein Redis-Schlüssel eine Zeichenfolge enthält, die als Ganzzahl dargestellt werden kann, kann Redis die Zahlenwerte als Basis-10 64-Bit-Signed Ganzzahlen interpretieren.
Die Nummer -Manipulation ist eine äußerst nützliche Funktion in jeder Datenbank. Redis bietet mehrere nützliche Operationen an, um an Ganzzahltypen wie Inkret, Decry, Incribby usw. zu arbeiten. In diesem Leitfaden wird der DECR -Befehl, der auf Ganzzahltypen arbeitet, ausführlich erläutert.
Der DECR -Befehl
Der Befehl "DECR. Dies funktioniert nur für Zeichenfolgewerte, die als Basis-10-64-Bit-Ganzzahl dargestellt werden können. Der DECR-Befehl wirft einen Fehler für Nicht-Stringwerte oder Zeichenfolgewerte aus, die nicht als Ganzzahlen dargestellt werden können.
Das Folgende ist die Syntax des DECR -Befehls:
Dekretionschlüssel
Taste: Der Schlüssel, der den Zeichenfolgenwert enthält.
Der DECR -Befehl gibt die resultierende signierte Ganzzahl nach dem Decrement -Vorgang zurück. Wenn der angegebene Schlüssel nicht vorhanden ist, legt der Befehl den Wert auf 0 fest und verringert ihn dann um eins um eins. Außerdem wird ein Fehler geworfen, wenn der Wert eine Nicht-String ist oder nicht als 64-Bit. Dieser Befehl arbeitet in der konstanten Zeitkomplexität (o (1)), die extrem schnell ist.
Anwendungsfall - Decrement Player Health in einem Online -Spiel
Nehmen wir ein Online-Spiel an, bei dem die Gesundheit jedes Spielers durch einen erhöht wird, wenn ein Medi-Pack enthüllt wird. In ähnlicher Weise nimmt die Gesundheit um eins ab, wenn der Spieler fällt oder von einem anderen Spieler getroffen wird.
Der ideale Kandidat für die Aufbewahrung der Gesundheit eines Spielers ist ein Redis -String -Typ, bei dem wir die Gesundheit als Ganzzahl aufbewahren können. Lassen Sie uns einen Schlüssel erstellen Gesundheit: PlayerID: 1 und setzen seinen Wert auf 10. Wir können den Befehl set wie folgt verwenden:
Setzen Sie Gesundheit: PlayerID: 1 10
Wir können den Befehl GET verwenden, um den gespeicherten Wert zu überprüfen Gesundheit: PlayerID: 1.
Gesundheit bekommen: PlayerID: 1
Nehmen wir an, der Spieler mit dem ID 1 wird getroffen und die Gesundheit sollte durch eins verringert werden. Der DECR -Befehl kann wie folgt verwendet werden:
DECRIENTSIGKEIT: PlayerID: 1
Wie erwartet druckt der DECR -Befehl den aktualisierten Wert nach dem Decrement -Vorgang, wie in der folgenden Abbildung gezeigt:
Außerdem können wir den auf Key gespeicherten Wert überprüfen Gesundheit: PlayerID: 1 mit dem Get -Befehl.
Gesundheit bekommen: PlayerID: 1
Wie erwartet nahm der Wert um eins ab.
Der DECR -Operator ist auch mit negativen Zahlen gültig. Lücken wir einen neuen negativen numerischen Wert am Schlüssel Negativ: Wert 1.
Negativ einstellen: Wert 1 -3
Wir können den Wert mit dem Befehl GET wie folgt untersuchen:
Negativ werden: Wert 1
Der folgende Befehl zeigt, wie der DECR -Befehl auf dem Schlüssel verwendet wird Negativ: Wert 1:
Dekretion negativ: Wert1
Der DECR-Befehl für Nichttegerwerte
Es gibt einige Randfälle, in denen wir versuchen, den Befehl DECR auf einem Redis-Schlüssel zu verwenden, der einen Nicht-String-Datentyp oder eine Zeichenfolge enthält, die nicht als Ganzzahl dargestellt werden kann. Der DECR -Befehl wirft in diesen Fällen einen Fehler aus, wie im folgenden Beispiel gezeigt:
Setzen Sie NOTANIntergerval Hallo
Das „Hallo“ ist ein Text, der nicht in eine signierte Ganzzahl umgewandelt werden kann. Der DECR -Befehl wirft also einen Fehler auf, wenn wir ihn gegen diesen Schlüssel anrufen.
DECR NOMTANICTERGERVAL
Der DECR-Befehl zu nicht existierenden Schlüssel
In einigen Fällen können Sie den DECR -Befehl in einem Schlüssel aufrufen, der im Redis -Datenspeicher nicht vorhanden ist. Der Befehl erstellt also den angegebenen Schlüssel und legt seinen Wert auf Ganzzahl 0 fest. Gleichzeitig wird der Wert um eins verringert.
Nicht existierende Key
Wie erwartet beträgt der Ausgang -1 -1.
Insgesamt ist der DECR -Befehl sehr nützlich, um die Zähler in Anwendungen mit niedriger Latenz zu implementieren.
Abschluss
Zusammenfassend ist DECR einer der Befehle, die auf numerischen Werten arbeiten, die in einem bestimmten Redis -Schlüssel gespeichert sind. Redis unterstützt keinen separaten Ganzzahl -Datentyp. Der String -Typ wird also verwendet, um auch die numerischen Werte zu halten. Wie untersucht, kann der DECR-Befehl verwendet werden, um seinen Wert zu verringern. Am wichtigsten ist, dass es mit konstanter Zeitkomplexität arbeitet. Außerdem wird der DECR -Befehl häufig verwendet, um die Zähler zu implementieren.