Redis disminución

Redis disminución

Manipulación de Redis Integer

El tipo de cadena es el tipo de datos más fundamental que ofrece Redis. Las cadenas de Redis son capaces de almacenar textos, objetos JSON serializados, imágenes, audio e incluso valores numéricos. En esta guía, nos centraremos en los valores numéricos y la manipulación de enteros. Redis no admite los tipos de datos enteros separados para contener los datos numéricos. Si una tecla Redis contiene una cadena que puede representarse como un entero, Redis puede interpretar los valores de número como Integers Firmado Base-10 de 64 bits.


La manipulación de números es una característica extremadamente útil para tener en cualquier base de datos. Redis ofrece varias operaciones útiles para trabajar en tipos enteros como INC, Dec, Incry, etc. En esta guía, el comando DISC que funciona en tipos enteros se explica en detalle.

El comando Dec

El comando Dec se introduce para disminuir un valor numérico que se almacena en una clave dada por uno. Esto funciona solo en valores de cadena que pueden representarse como un entero base de 64 bits de base. El comando Dec lanza un error para los valores que no son de cadena o valores de cadena que no se pueden representar como enteros.

La siguiente es la sintaxis del comando Dec:

DISC CLAVE


Llave: La clave que contiene el valor de la cadena.

El comando Dec Devuelve el entero firmado resultante después de la operación de disminución. Si la clave especificada no existe, el comando establece el valor en 0 y luego la disminuye por uno. Además, se lanza un error cuando el valor es una no cuerda o no se puede representar como un entero firmado de 64 bits. Este comando funciona con complejidad de tiempo constante (o (1)) que es extremadamente rápido.

Caso de uso - Decrement Player Health en un juego en línea

Supongamos que un juego en línea donde la salud de cada jugador se incrementa en uno cuando se revela un paquete Medi. Del mismo modo, la salud disminuye en uno si el jugador cae o es golpeado por otro jugador.

El candidato ideal para almacenar la salud de un jugador es un tipo de cadena Redis donde podemos almacenar la salud como entero. Creemos una llave Salud: PlayerId: 1 y establecer su valor en 10. Podemos usar el comando set de la siguiente manera:

Set Health: PlayerId: 1 10



Podemos usar el comando get para verificar el valor almacenado en Salud: PlayerId: 1.

Get Health: PlayerId: 1



Digamos que el jugador con la identificación 1 es golpeado y la salud debe disminuir en uno. El comando Dec se puede usar de la siguiente manera:

Dec. Salud: PlayerId: 1


Como se esperaba, el comando Disc imprime el valor actualizado después de la operación de disminución como se muestra en la siguiente figura:


Además, podemos inspeccionar el valor almacenado en la tecla Salud: PlayerId: 1 con el comando get.

Get Health: PlayerId: 1



Como se esperaba, el valor disminuyó en uno.

El operador Dec es válido con números negativos también. Almacemos un nuevo valor numérico negativo en la clave Negativo: valor1.

Establecer negativo: valor1 -3


Podemos inspeccionar el valor usando el comando get de la siguiente manera:

Obtener negativo: valor1



El siguiente comando muestra cómo se usa el comando DUSC en la clave negativo: valor1:

Dec Negativo: Valor1


El comando Dec en los valores no intensos

Hay algunos casos de borde cuando intentamos usar el comando Disc en una tecla Redis que contiene un tipo de datos que no son de cadena o una cadena que no se puede representar como un número entero. El comando Dec lanza un error en esos casos como se muestra en el siguiente ejemplo:

Establecer nointergerval hola


El "hola" es un texto que no se puede convertir a un entero firmado. Entonces, el comando DUSC plantea un error si lo llamamos contra esta clave.

Dec Notanintergerval


El comando Dec en claves inexistentes

En algunos casos, puede llamar al comando DUSC en una clave que no existe en el almacén de datos de Redis. Entonces, el comando crea la clave especificada y establece su valor en entero 0. Al mismo tiempo, el valor disminuye en uno.

disminución de la tecla inexistente


Como se esperaba, la salida es -1.


En general, el comando Dec es muy útil para implementar los contadores en aplicaciones de baja latencia.

Conclusión

En resumen, Dec es uno de los comandos que operan con valores numéricos que se almacenan en una clave REDIS dada. Redis no admite un tipo de datos enteros separados. Entonces, el tipo de cadena se usa para contener los valores numéricos también. Como se examinó, si el valor de la cadena se puede representar como un entero firmado de 64 bits, el comando DISC se puede usar para disminuir su valor. Lo más importante, opera con complejidad de tiempo constante. Además, el comando Dec se usa ampliamente para implementar los contadores.