반환 DECR

Banhwan Decr



Redis 정수 조작

문자열 유형은 Redis가 제공하는 가장 기본적인 데이터 유형입니다. Redis 문자열은 텍스트, 직렬화된 JSON 개체, 이미지, 오디오 및 숫자 값까지 저장할 수 있습니다. 이 가이드에서는 숫자 값과 정수 조작에 중점을 둘 것입니다. Redis는 숫자 데이터를 보유하기 위해 별도의 정수 데이터 유형을 지원하지 않습니다. Redis 키에 정수로 표시할 수 있는 문자열이 포함된 경우 Redis는 숫자 값을 10진수 64비트 부호 있는 정수로 해석할 수 있습니다.


숫자 조작은 모든 데이터베이스에 있는 매우 유용한 기능입니다. Redis는 INCR, DECR, INCRBY 등과 같은 정수 유형에서 작동하는 몇 가지 유용한 연산을 제공합니다. 이 가이드에서는 정수 유형에서 작동하는 DECR 명령에 대해 자세히 설명합니다.







DECR 명령

DECR 명령은 주어진 키에 저장된 숫자 값을 1씩 감소시키기 위해 도입되었습니다. 이것은 base-10 64비트 정수로 표시될 수 있는 문자열 값에서만 작동합니다. DECR 명령은 문자열이 아닌 값이나 정수로 나타낼 수 없는 문자열 값에 대해 오류를 발생시킵니다.



다음은 DECR 명령의 구문입니다.



DECR 키


열쇠: 문자열 값을 보유하는 키입니다.





DECR 명령은 감소 연산 후에 결과로 나오는 부호 있는 정수를 반환합니다. 지정된 키가 없으면 명령은 값을 0으로 설정한 다음 1씩 감소시킵니다. 또한 값이 문자열이 아니거나 64비트 부호 있는 정수로 표시할 수 없는 경우 오류가 발생합니다. 이 명령은 매우 빠른 일정한 시간 복잡도(O(1))에서 작동합니다.

사용 사례 – 온라인 게임에서 플레이어 건강 감소

메디팩이 공개되면 각 플레이어의 체력이 1씩 증가하는 온라인 게임을 가정해 보겠습니다. 마찬가지로, 플레이어가 넘어지거나 다른 플레이어에게 맞으면 체력이 1 감소합니다.



플레이어의 건강을 저장하는 이상적인 후보는 건강을 정수로 저장할 수 있는 Redis 문자열 유형입니다. 키를 생성하자 건강:플레이어ID:1 값을 10으로 설정합니다. SET 명령을 다음과 같이 사용할 수 있습니다.

세트 건강:플레이어ID: 1 10



GET 명령을 사용하여 저장된 값을 확인할 수 있습니다. 건강:플레이어ID:1.

건강 얻기:playerID: 1



ID가 1인 플레이어가 공격을 받고 체력이 1 감소해야 한다고 가정해 보겠습니다. DECR 명령은 다음과 같이 사용할 수 있습니다.

Decr Health:playerID: 1


예상대로 DECR 명령은 다음 그림과 같이 감소 작업 후에 업데이트된 값을 인쇄합니다.


또한 키에 저장된 값을 검사할 수 있습니다. 건강:플레이어ID:1 GET 명령으로.

건강 얻기:playerID: 1



예상대로 값이 1 감소했습니다.

DECR 연산자는 음수에도 유효합니다. 키에 새로운 음수 값을 저장합시다. 음수:값1 .

세트 음수:값1 -삼


다음과 같이 GET 명령을 사용하여 값을 검사할 수 있습니다.

음수 가져오기:value1



다음 명령은 키에서 DECR 명령이 사용되는 방법을 보여줍니다. 음수:값1:

Decr 음수:값1


정수가 아닌 값에 대한 DECR 명령

문자열이 아닌 데이터 유형 또는 정수로 표시할 수 없는 문자열을 보유하는 Redis 키에서 DECR 명령을 사용하려고 할 때 몇 가지 극단적인 경우가 있습니다. DECR 명령은 다음 예와 같이 이러한 경우에 오류를 발생시킵니다.

세트 notAnIntergerVal 안녕하세요


'Hello'는 부호 있는 정수로 변환할 수 없는 텍스트입니다. 따라서 이 키에 대해 DECR 명령을 호출하면 오류가 발생합니다.

decr notAnIntergerVal


존재하지 않는 키에 대한 DECR 명령

경우에 따라 Redis 데이터 저장소에 없는 키에 대해 DECR 명령을 호출할 수 있습니다. 따라서 명령은 지정된 키를 생성하고 그 값을 정수 0으로 설정합니다. 동시에 값은 1만큼 감소합니다.

Decr 존재하지 않는 키


예상대로 출력은 -1입니다.


전반적으로 DECR 명령은 대기 시간이 짧은 응용 프로그램에서 카운터를 구현하는 데 매우 유용합니다.

결론

요약하면 DECR은 지정된 Redis 키에 저장된 숫자 값에 대해 작동하는 명령 중 하나입니다. Redis는 별도의 정수 데이터 유형을 지원하지 않습니다. 따라서 문자열 유형은 숫자 값도 보유하는 데 사용됩니다. 조사한 바와 같이 문자열 값이 64비트 부호 있는 정수로 표시될 수 있는 경우 DECR 명령을 사용하여 해당 값을 감소시킬 수 있습니다. 가장 중요한 것은 일정한 시간 복잡도에서 작동한다는 것입니다. 또한 DECR 명령은 카운터를 구현하는 데 널리 사용됩니다.