returnera DECR

Returnera Decr



Redis heltalsmanipulation

Strängtypen är den mest grundläggande datatypen som Redis erbjuder. Redis-strängar kan lagra texter, serialiserade JSON-objekt, bilder, ljud och till och med numeriska värden. I den här guiden kommer vi att fokusera på numeriska värden och manipulering av heltal. Redis stöder inte de separata heltalsdatatyperna för att hålla numeriska data. Om en Redis-nyckel innehåller en sträng som kan representeras som ett heltal, kan Redis tolka talvärdena som bas-10 64-bitars heltal med tecken.


Nummermanipulationen är en extremt användbar funktion att ha i vilken databas som helst. Redis erbjuder flera användbara operationer för att arbeta med heltalstyper som INCR, DECR, INCRBY, etc. I den här guiden förklaras DECR-kommandot som fungerar på heltalstyper i detalj.







DECR-kommandot

DECR-kommandot introduceras för att minska ett talvärde som är lagrat vid en given nyckel med ett. Detta fungerar bara på strängvärden som kan representeras som ett heltal på basen 10 64 bitar. Kommandot DECR ger ett fel för icke-strängvärden eller strängvärden som inte kan representeras som heltal.



Följande är syntaxen för kommandot DECR:



DECR-tangent


Nyckel: Nyckeln som håller strängvärdet.





DECR-kommandot returnerar det resulterande signerade heltal efter dekrementeringsoperationen. Om den angivna nyckeln inte finns sätter kommandot värdet till 0 och minskar det sedan med ett. Ett fel uppstår också när värdet är en icke-sträng eller inte kan representeras som ett 64-bitars heltal med tecken. Detta kommando fungerar på konstant tidskomplexitet (O(1)), vilket är extremt snabbt.

Användningsfall – Minska spelarens hälsa i ett onlinespel

Låt oss anta ett onlinespel där varje spelares hälsa ökas med ett när ett mediepaket avslöjas. På samma sätt minskar hälsan med en om spelaren faller eller träffas av en annan spelare.



Den idealiska kandidaten för att lagra en spelares hälsa är en Redis-strängtyp där vi kan lagra hälsan som ett heltal. Låt oss skapa en nyckel hälsa:spelare-ID:1 och ställ in dess värde till 10. Vi kan använda kommandot SET enligt följande:

uppsättning hälsa:spelare-ID: 1 10



Vi kan använda kommandot GET för att verifiera värdet som lagras på hälsa:spelare-ID:1.

få hälsa:playerID: 1



Låt oss säga att spelaren med ID 1 blir träffad och hälsan bör minskas med en. Kommandot DECR kan användas enligt följande:

decr hälsa:spelare-ID: 1


Som förväntat skriver DECR-kommandot det uppdaterade värdet efter minskningsoperationen som visas i följande figur:


Vi kan också inspektera värdet som lagras vid nyckel hälsa:spelare-ID:1 med kommandot GET.

få hälsa:playerID: 1



Som väntat minskade värdet med en.

DECR-operatören är giltig även med negativa tal. Låt oss lagra ett nytt negativt numeriskt värde vid nyckeln negativ:värde1 .

uppsättning negativ:värde1 -3


Vi kan inspektera värdet med hjälp av kommandot GET enligt följande:

få negativ:värde1



Följande kommando visar hur DECR-kommandot används på tangenten negativ:värde1:

decr negativ:värde1


DECR-kommandot för icke-heltalsvärden

Det finns några kantfall när vi försöker använda kommandot DECR på en Redis-nyckel som innehåller en icke-strängdatatyp eller en sträng som inte kan representeras som ett heltal. DECR-kommandot ger ett fel i de fall som visas i följande exempel:

uppsättning notAnIntergerVal Hej


'Hej' är en text som inte kan konverteras till ett signerat heltal. Så, kommandot DECR ger upphov till ett fel om vi kallar det mot denna nyckel.

decr notAnIntergerVal


DECR-kommandot på icke-existerande nycklar

I vissa fall kan du anropa DECR-kommandot på en tangent som inte finns i Redis-dataarkivet. Så, kommandot skapar den angivna nyckeln och ställer in dess värde till heltal 0. Samtidigt minskas värdet med ett.

decr icke-existerande-nyckel


Som väntat är utgången -1.


Sammantaget är DECR-kommandot mycket användbart för att implementera räknarna i applikationer med låg latens.

Slutsats

Sammanfattningsvis är DECR ett av kommandona som fungerar på numeriska värden som lagras vid en given Redis-nyckel. Redis stöder inte en separat heltalsdatatyp. Så, strängtypen används för att även hålla de numeriska värdena. Som undersökt, om strängvärdet kan representeras som ett 64-bitars signerat heltal, kan DECR-kommandot användas för att minska dess värde. Viktigast av allt, det arbetar på konstant tidskomplexitet. DECR-kommandot används också i stor utsträckning för att implementera räknarna.