врати ДЕЦР

Vrati Decr



Редис Интегер Манипулатион

Тип стринга је најосновнији тип података који Редис нуди. Редис стрингови су способни да чувају текстове, серијализоване ЈСОН објекте, слике, аудио, па чак и нумеричке вредности. У овом водичу ћемо се фокусирати на нумеричке вредности и манипулацију целим бројевима. Редис не подржава засебне типове целобројних података за чување нумеричких података. Ако Редис кључ садржи стринг који се може представити као цео број, Редис може тумачити вредности бројева као базних 10 64-битних потписаних целих бројева.


Манипулација бројевима је изузетно корисна функција у било којој бази података. Редис нуди неколико корисних операција за рад на целобројним типовима као што су ИНЦР, ДЕЦР, ИНЦРБИ, итд. У овом водичу, ДЕЦР команда која ради на целобројним типовима је детаљно објашњена.







Команда ДЕЦР

Команда ДЕЦР је уведена да смањи вредност броја која се чува на датом кључу за један. Ово функционише само на вредностима низа које се могу представити као 64-битни цео број са базом 10. Команда ДЕЦР даје грешку за вредности које нису низови или вредности низа које се не могу представити као цели бројеви.



Следеће је синтакса ДЕЦР команде:



ДЕЦР тастер


Кључ: Кључ који држи вредност стринга.





Команда ДЕЦР враћа резултујући потписани цео број након операције смањивања. Ако наведени кључ не постоји, команда поставља вредност на 0, а затим је смањује за један. Такође, грешка се јавља када вредност није низ или се не може представити као 64-битни цео број са предзнаком. Ова команда ради на константној временској сложености (О(1)) која је изузетно брза.

Случај употребе – Смањење здравља играча у онлајн игрици

Претпоставимо да је игра на мрежи у којој се здравље сваког играча повећава за један када се открије пакет са пакетом. Слично, здравље се смањује за један ако играч падне или га удари други играч.



Идеалан кандидат за чување здравља играча је тип низа Редис где можемо да ускладиштимо здравље као цео број. Хајде да направимо кључ здравље:плаиерИД:1 и подесите његову вредност на 10. Команду СЕТ можемо користити на следећи начин:

комплет здравље:плаиерИД: 1 10



Можемо да користимо наредбу ГЕТ да проверимо вредност сачувану у здравље:плаиерИД:1.

добити здравље:плаиерИД: 1



Рецимо да је играч са ИД 1 погођен и здравље би требало да се смањи за један. ДЕЦР команда се може користити на следећи начин:

децр хеалтх:плаиерИД: 1


Као што се и очекивало, ДЕЦР команда штампа ажурирану вредност након операције смањења као што је приказано на следећој слици:


Такође, можемо да проверимо вредност сачувану на кључу здравље:плаиерИД:1 са командом ГЕТ.

добити здравље:плаиерИД: 1



Очекивано, вредност је смањена за један.

ДЕЦР оператор важи и са негативним бројевима. Хајде да сачувамо нову негативну нумеричку вредност на кључу негативан: вредност1 .

комплет негативан: вредност1 -3


Можемо да проверимо вредност користећи команду ГЕТ на следећи начин:

добити негативну вредност: вредност1



Следећа команда показује како се команда ДЕЦР користи на кључу негативно:вредност1:

децр негативе:валуе1


ДЕЦР команда за вредности које нису целобројне

Постоје неки ивични случајеви када покушавамо да користимо ДЕЦР команду на Редис кључу који садржи тип података који није низ или низ који се не може представити као цео број. Команда ДЕЦР у тим случајевима даје грешку као што је приказано у следећем примеру:

комплет нотАнИнтергерВал Здраво


„Здраво“ је текст који се не може конвертовати у потписани цео број. Дакле, ДЕЦР команда изазива грешку ако је позовемо против овог кључа.

децр нотАнИнтергерВал


ДЕЦР команда за непостојеће кључеве

У неким случајевима можете позвати ДЕЦР команду на кључу који не постоји у Редис складишту података. Дакле, команда креира наведени кључ и поставља његову вредност на цео број 0. Истовремено, вредност се смањује за један.

децр непостојећи кључ


Као што се очекивало, излаз је -1.


Све у свему, ДЕЦР команда је веома корисна за имплементацију бројача у апликацијама са малим кашњењем.

Закључак

Укратко, ДЕЦР је једна од наредби које раде на нумеричким вредностима које се чувају на датом Редис кључу. Редис не подржава посебан целобројни тип података. Дакле, тип стринга се користи и за чување нумеричких вредности. Као што је испитано, ако се вредност стринга може представити као 64-битни цео број са предзнаком, команда ДЕЦР се може користити за смањење њене вредности. Што је најважније, ради на константној временској сложености. Такође, ДЕЦР команда се широко користи за имплементацију бројача.