Redis diminuído

Redis diminuído

Redis Manipulação inteira

O tipo de string é o tipo de dados mais fundamental que Redis oferece. Redis Strings 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. Redis não suporta os tipos de dados inteiros separados para manter os dados numéricos. Se uma tecla Redis contiver uma string que pode ser representada como um número inteiro, Redis pode interpretar os valores numéricos como números inteiros baseados Base-10 de 64 bits.


A manipulação do número é um recurso extremamente útil para ter em qualquer banco de dados. Redis oferece várias operações úteis para trabalhar em tipos inteiros, como Incr, Dimp, Incrby, etc. Neste guia, o comando diminuto que opera em tipos inteiros é explicado em detalhes.

O comando diminuto

O comando diminuto é introduzido para diminuir um valor numérico que é armazenado em uma determinada chave por um. Isso funciona apenas em valores de string que podem ser representados como um número inteiro de 64 bits de base de 10 bits. O comando diminuto lança um erro para valores de não corda ou valores de string que não podem ser representados como inteiros.

A seguir, a sintaxe do comando diminuto:

Chave de diminuição


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

O comando diminuto retorna o número inteiro assinado resultante após a operação de decréscimo. Se a chave especificada não existir, o comando define o valor para 0 e depois a diminui por um. Além disso, um erro é lançado quando o valor não é uma corda ou não pode ser representado como um número inteiro assinado de 64 bits. Este comando opera com a complexidade do 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 on-line em que a saúde de cada jogador seja incrementada por um quando um pacote medi é 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 corda Redis, onde podemos armazenar a saúde como um número inteiro. Vamos criar uma chave Saúde: PlayerID: 1 e defina seu valor para 10. Podemos usar o comando set da seguinte maneira:

Set Health: PlayerID: 1 10



Podemos usar o comando get para verificar o valor armazenado em Saúde: PlayerID: 1.

Get Health: PlayerID: 1



Digamos que o jogador com o ID 1 é atingido e a saúde deve ser diminuída por um. O comando diminuto pode ser usado da seguinte maneira:

Dimp Health: PlayerID: 1


Como esperado, o comando DUMT imprime o valor atualizado após a operação de decréscimo, como mostrado na figura a seguir:


Além disso, podemos inspecionar o valor armazenado na chave Saúde: PlayerID: 1 com o comando get.

Get Health: PlayerID: 1



Como esperado, o valor diminuiu por um.

O operador DUM é válido com números negativos também. 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:

Obtenha negativo: Value1



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

diminuição negativa: valor1


O comando diminuto em valores não inteiros

Existem alguns casos de borda em que tentamos usar o comando DUMT em uma chave Redis que contém um tipo de dados que não seja de cordão ou uma string que não pode ser representada como um número inteiro. O comando diminuto lança um erro nesses casos, como mostrado no exemplo a seguir:

Definir nonintergerVal Hello


O "Hello" é um texto que não pode ser convertido em um número inteiro assinado. Então, o comando diminuto levanta um erro se chamarmos contra esta chave.

diminuição do não -intergerV


O comando diminuto nas chaves inexistentes

Em alguns casos, você pode ligar para o comando diminuto em uma chave que não existe no Redis Data Store. Portanto, o comando cria a tecla especificada e define seu valor para o número inteiro 0. Ao mesmo tempo, o valor diminui por um.

chave inexistente de diminuição


Como esperado, a saída é -1.


No geral, o comando diminuto é muito útil para implementar os contadores em aplicações de baixa latência.

Conclusão

Em resumo, o DRIMT é um dos comandos que operam com valores numéricos que são armazenados em uma determinada chave Redis. Redis não suporta um tipo de dados inteiro separado. Então, o tipo de string é usado para manter os valores numéricos também. Conforme examinado, se o valor da string puder ser representado como um número inteiro assinado de 64 bits, o comando diminuto poderá ser usado para diminuir seu valor. O mais importante, ele opera com complexidade constante de tempo. Além disso, o comando diminuto é amplamente usado para implementar os contadores.