retornar DECR

Retornar Decr



Manipulação de números inteiros do Redis

O tipo de string é o tipo de dados mais fundamental que o Redis oferece. As strings Redis são capazes de armazenar textos, objetos JSON serializados, imagens, áudio e até valores numéricos. Neste guia, vamos nos concentrar nos valores numéricos e na manipulação de números inteiros. O Redis não suporta os tipos de dados inteiros separados para armazenar os dados numéricos. Se uma chave do Redis contiver uma string que possa ser representada como um inteiro, o Redis poderá interpretar os valores numéricos como inteiros com sinal de 64 bits de base 10.


A manipulação de números é um recurso extremamente útil para se ter em qualquer banco de dados. O Redis oferece várias operações úteis para trabalhar em tipos inteiros, como INCR, DECR, INCRBY, etc. Neste guia, o comando DECR que opera em tipos inteiros é explicado em detalhes.







O comando DECR

O comando DECR é introduzido para diminuir um valor numérico armazenado em uma determinada chave em um. Isso funciona apenas em valores de string que podem ser representados como um inteiro de 64 bits de base 10. O comando DECR gera um erro para valores que não sejam de string ou valores de string que não podem ser representados como números inteiros.



A seguir está a sintaxe do comando DECR:



Chave DECR


Chave: A chave que contém o valor da string.





O comando DECR retorna o inteiro assinado resultante após a operação de decremento. Se a chave especificada não existir, o comando definirá o valor como 0 e o diminuirá em um. Além disso, um erro é gerado quando o valor não é uma string ou não pode ser representado como um inteiro com sinal de 64 bits. Este comando opera em complexidade de tempo constante (O(1)), que é extremamente rápido.

Caso de uso – diminuir a saúde do jogador em um jogo online

Vamos supor um jogo online onde a saúde de cada jogador é incrementada em um quando um medi-pack é revelado. Da mesma forma, a saúde diminui em um se o jogador cair ou for atingido por outro jogador.



O candidato ideal para armazenar a saúde de um jogador é um tipo de string Redis onde podemos armazenar a saúde como um número inteiro. Vamos criar uma chave health:playerID:1 e defina seu valor para 10. Podemos usar o comando SET da seguinte forma:

definir health:playerID: 1 10



Podemos usar o comando GET para verificar o valor armazenado em health:playerID:1.

obter saúde:playerID: 1



Digamos que o jogador com o ID 1 seja atingido e a saúde deva ser diminuída em um. O comando DECR pode ser usado da seguinte forma:

decr health:playerID: 1


Como esperado, o comando DECR imprime o valor atualizado após a operação de decremento conforme mostrado na figura a seguir:


Além disso, podemos inspecionar o valor armazenado na chave health:playerID:1 com o comando GET.

obter saúde:playerID: 1



Como esperado, o valor diminuiu em um.

O operador DECR também é válido com números negativos. Vamos armazenar um novo valor numérico negativo na chave negativo: valor1 .

definir negativo: valor1 -3


Podemos inspecionar o valor usando o comando GET da seguinte forma:

obter negativo: valor1



O comando a seguir mostra como o comando DECR é usado na chave negativo:valor1:

decr negativo: valor1


O comando DECR em valores não inteiros

Existem alguns casos extremos quando tentamos usar o comando DECR em uma chave Redis que contém um tipo de dados não string ou uma string que não pode ser representada como um inteiro. O comando DECR gera um erro nesses casos, conforme mostrado no exemplo a seguir:

definir notAnIntergerVal Olá


O “Hello” é um texto que não pode ser convertido em um inteiro com sinal. Portanto, o comando DECR gera um erro se o chamarmos nessa chave.

decr notAnIntergerVal


O comando DECR em chaves não existentes

Em alguns casos, você pode chamar o comando DECR em uma chave que não existe no armazenamento de dados do Redis. Assim, o comando cria a chave especificada e define seu valor como inteiro 0. Ao mesmo tempo, o valor é reduzido em um.

decr chave inexistente


Como esperado, a saída é -1.


No geral, o comando DECR é muito útil para implementar os contadores em aplicativos de baixa latência.

Conclusão

Em resumo, DECR é um dos comandos que operam em valores numéricos armazenados em uma determinada tecla Redis. O Redis não oferece suporte a um tipo de dados inteiro separado. Portanto, o tipo string também é usado para armazenar os valores numéricos. Conforme examinado, se o valor da string puder ser representado como um inteiro com sinal de 64 bits, o comando DECR poderá ser usado para diminuir seu valor. Mais importante ainda, ele opera em uma complexidade de tempo constante. Além disso, o comando DECR é amplamente utilizado para implementar os contadores.