Rückgabe DECR

Ruckgabe Decr

Redis-Integer-Manipulation

Der String-Typ ist der grundlegendste Datentyp, den Redis bietet. Redis-Strings 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 ganzen Zahlen. Redis unterstützt die separaten Integer-Datentypen nicht, um die numerischen Daten zu speichern. Wenn ein Redis-Schlüssel eine Zeichenfolge enthält, die als ganze Zahl dargestellt werden kann, kann Redis die Zahlenwerte als vorzeichenbehaftete 64-Bit-Ganzzahlen mit Basis 10 interpretieren.


Die Zahlenmanipulation ist eine äußerst nützliche Funktion, die in jeder Datenbank vorhanden sein sollte. Redis bietet mehrere nützliche Operationen, um mit Integer-Typen wie INCR, DECR, INCRBY usw. zu arbeiten. In diesem Handbuch wird der DECR-Befehl, der mit Integer-Typen arbeitet, ausführlich erklärt.







Der DECR-Befehl

Der DECR-Befehl wird eingeführt, um einen Zahlenwert, der unter einer bestimmten Taste gespeichert ist, um eins zu verringern. Dies funktioniert nur bei Zeichenfolgenwerten, die als Basis-10-64-Bit-Ganzzahl dargestellt werden können. Der DECR-Befehl gibt einen Fehler für Nicht-String-Werte oder String-Werte aus, die nicht als Ganzzahlen dargestellt werden können.



Das Folgende ist die Syntax des DECR-Befehls:



DECR-Taste


Taste: Der Schlüssel, der den Zeichenfolgenwert enthält.





Der DECR-Befehl gibt die resultierende vorzeichenbehaftete Ganzzahl nach der Dekrementoperation zurück. Wenn der angegebene Schlüssel nicht existiert, setzt der Befehl den Wert auf 0 und verringert ihn dann um eins. Außerdem wird ein Fehler ausgegeben, wenn der Wert keine Zeichenfolge ist oder nicht als 64-Bit-Ganzzahl mit Vorzeichen dargestellt werden kann. Dieser Befehl arbeitet mit konstanter Zeitkomplexität (O(1)), was extrem schnell ist.

Anwendungsfall – Verringern Sie die Spielergesundheit in einem Online-Spiel

Nehmen wir ein Online-Spiel an, bei dem die Gesundheit jedes Spielers um eins erhöht wird, wenn ein Medipack aufgedeckt wird. Ebenso sinkt die Gesundheit um eins, wenn der Spieler fällt oder von einem anderen Spieler getroffen wird.



Der ideale Kandidat zum Speichern der Gesundheit eines Spielers ist ein Redis-String-Typ, in dem wir die Gesundheit als Ganzzahl speichern können. Lassen Sie uns einen Schlüssel erstellen Gesundheit: Spieler-ID: 1 und setzen Sie seinen Wert auf 10. Wir können den SET-Befehl wie folgt verwenden:

einstellen Gesundheit:PlayerID: 1 10



Wir können den GET-Befehl verwenden, um den gespeicherten Wert zu überprüfen Gesundheit: Spieler-ID: 1.

Gesundheit abrufen:playerID: 1



Nehmen wir an, dass der Spieler mit der ID 1 getroffen wird und die Gesundheit um eins verringert werden soll. Der DECR-Befehl kann wie folgt verwendet werden:

decr health:playerID: 1


Wie erwartet gibt der DECR-Befehl den aktualisierten Wert nach der Dekrementoperation aus, wie in der folgenden Abbildung gezeigt:


Außerdem können wir den am Schlüssel gespeicherten Wert überprüfen Gesundheit: Spieler-ID: 1 mit dem GET-Befehl.

Gesundheit abrufen:playerID: 1



Wie erwartet verringerte sich der Wert um eins.

Der DECR-Operator ist auch mit negativen Zahlen gültig. Speichern wir einen neuen negativen Zahlenwert auf der Taste negativ:wert1 .

einstellen negativ:wert1 -3


Wir können den Wert mit dem GET-Befehl wie folgt überprüfen:

Negativ erhalten: value1



Der folgende Befehl zeigt, wie der DECR-Befehl auf dem Schlüssel verwendet wird negativ:wert1:

decr negativ:wert1


Der DECR-Befehl für nicht ganzzahlige Werte

Es gibt einige Randfälle, wenn wir versuchen, den DECR-Befehl für einen Redis-Schlüssel zu verwenden, der einen Nicht-String-Datentyp oder einen String enthält, der nicht als Ganzzahl dargestellt werden kann. Der DECR-Befehl löst in diesen Fällen einen Fehler aus, wie im folgenden Beispiel gezeigt:

einstellen notAnIntergerVal Hallo


Das „Hallo“ ist ein Text, der nicht in eine vorzeichenbehaftete Ganzzahl umgewandelt werden kann. Der DECR-Befehl löst also einen Fehler aus, wenn wir ihn für diesen Schlüssel aufrufen.

decr notAnIntegerVal


Der DECR-Befehl für nicht vorhandene Schlüssel

In einigen Fällen können Sie den DECR-Befehl für einen Schlüssel aufrufen, der nicht im Redis-Datenspeicher vorhanden ist. Der Befehl erstellt also den angegebenen Schlüssel und setzt seinen Wert auf die Ganzzahl 0. Gleichzeitig wird der Wert um eins verringert.

decr nicht vorhandener Schlüssel


Wie erwartet ist die Ausgabe -1.


Insgesamt ist der DECR-Befehl sehr nützlich, um die Zähler in Anwendungen mit geringer Latenz zu implementieren.

Fazit

Zusammenfassend ist DECR einer der Befehle, die mit numerischen Werten arbeiten, die unter einem bestimmten Redis-Schlüssel gespeichert sind. Redis unterstützt keinen separaten ganzzahligen Datentyp. Der String-Typ wird also auch verwendet, um die numerischen Werte zu speichern. Wie untersucht wurde, kann der DECR-Befehl verwendet werden, um seinen Wert zu dekrementieren, wenn der Zeichenfolgenwert als eine 64-Bit-Ganzzahl mit Vorzeichen dargestellt werden kann. 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.