vrnitev DECR

Vrnitev Decr



Redis Integer Manipulacija

Vrsta niza je najbolj temeljna vrsta podatkov, ki jih ponuja Redis. Nizi Redis so sposobni shranjevati besedila, serializirane objekte JSON, slike, zvok in celo številske vrednosti. V tem vodniku se bomo osredotočili na številske vrednosti in manipulacijo s celimi števili. Redis ne podpira ločenih tipov celoštevilskih podatkov za shranjevanje številskih podatkov. Če ključ Redis vsebuje niz, ki ga je mogoče predstaviti kot celo število, lahko Redis interpretira številske vrednosti kot 64-bitna cela števila z osnovo 10.


Manipulacija s številkami je izjemno uporabna funkcija, ki jo imate v kateri koli bazi podatkov. Redis ponuja več uporabnih operacij za delo s celimi tipi, kot so INCR, DECR, INCRBY itd. V tem priročniku je ukaz DECR, ki deluje s celimi tipi, podrobno razložen.







Poveljstvo DECR

Ukaz DECR je predstavljen za zmanjšanje številske vrednosti, ki je shranjena na danem ključu, za eno. To deluje samo pri vrednostih nizov, ki jih je mogoče predstaviti kot 64-bitno celo število base-10. Ukaz DECR vrže napako za vrednosti, ki niso nizi, ali vrednosti nizov, ki jih ni mogoče predstaviti kot cela števila.



Sledi sintaksa ukaza DECR:



Tipka DECR


ključ: Ključ, ki vsebuje vrednost niza.





Ukaz DECR po operaciji zmanjševanja vrne nastalo celo število s predznakom. Če navedeni ključ ne obstaja, ukaz nastavi vrednost na 0 in jo nato zmanjša za eno. Napaka se pojavi tudi, če vrednost ni niz ali je ni mogoče predstaviti kot 64-bitno celo število s predznakom. Ta ukaz deluje na konstantni časovni zahtevnosti (O(1)), kar je izjemno hitro.

Primer uporabe – Zmanjšajte zdravje igralca v spletni igri

Predpostavimo spletno igro, v kateri se zdravje vsakega igralca poveča za eno, ko se odkrije medicinski paket. Podobno se zdravje zmanjša za eno, če igralec pade ali ga udari drug igralec.



Idealen kandidat za shranjevanje igralčevega zdravja je vrsta niza Redis, kjer lahko shranimo zdravje kot celo število. Ustvarimo ključ zdravje:ID igralca:1 in nastavite njegovo vrednost na 10. Ukaz SET lahko uporabimo na naslednji način:

set zdravje:playerID: 1 10



Z ukazom GET lahko preverimo vrednost, shranjeno v zdravje:ID igralca:1.

pridobi zdravje:playerID: 1



Recimo, da je igralec z ID-jem 1 zadet in zdravje bi se moralo zmanjšati za eno. Ukaz DECR lahko uporabite na naslednji način:

decr zdravje:playerID: 1


Kot je bilo pričakovano, ukaz DECR natisne posodobljeno vrednost po operaciji zmanjšanja, kot je prikazano na naslednji sliki:


Prav tako lahko pregledamo vrednost, shranjeno na ključu zdravje:ID igralca:1 z ukazom GET.

pridobi zdravje:playerID: 1



Po pričakovanjih se je vrednost znižala za eno.

Operator DECR je veljaven tudi z negativnimi števili. Na ključu shranimo novo negativno številsko vrednost negativno:vrednost1 .

set negativno:vrednost1 -3


Vrednost lahko pregledamo z ukazom GET na naslednji način:

get negative:value1



Naslednji ukaz prikazuje, kako se ukaz DECR uporablja na ključu negativno:vrednost1:

decr negative:value1


Ukaz DECR za necele vrednosti

Obstaja nekaj robnih primerov, ko poskušamo uporabiti ukaz DECR na ključu Redis, ki vsebuje podatkovni tip, ki ni niz, ali niz, ki ga ni mogoče predstaviti kot celo število. Ukaz DECR vrže napako v teh primerih, kot je prikazano v naslednjem primeru:

set notAnIntergerVal Pozdravljeni


»Pozdravljeni« je besedilo, ki ga ni mogoče pretvoriti v predznačeno celo število. Torej, ukaz DECR sproži napako, če ga pokličemo proti tej tipki.

decr notAnIntergerVal


Ukaz DECR na neobstoječih ključih

V nekaterih primerih lahko pokličete ukaz DECR na ključu, ki ne obstaja v shrambi podatkov Redis. Torej ukaz ustvari podani ključ in nastavi njegovo vrednost na celo število 0. Hkrati se vrednost zmanjša za eno.

decr neobstoječi-ključ


Kot je bilo pričakovano, je rezultat -1.


Na splošno je ukaz DECR zelo uporaben za implementacijo števcev v aplikacijah z nizko zakasnitvijo.

Zaključek

Če povzamemo, DECR je eden od ukazov, ki delujejo na številskih vrednostih, ki so shranjene na danem ključu Redis. Redis ne podpira ločenega tipa celih podatkov. Torej se tip niza uporablja tudi za shranjevanje številskih vrednosti. Kot je bilo preučeno, če je vrednost niza mogoče predstaviti kot 64-bitno celo število s predznakom, lahko uporabite ukaz DECR za zmanjšanje njene vrednosti. Najpomembneje je, da deluje na konstantni časovni kompleksnosti. Poleg tega se ukaz DECR pogosto uporablja za izvajanje števcev.