Redis Hashes
El mapa es una estructura de datos ampliamente utilizada en el contexto de la programación. Es una técnica ampliamente utilizada para almacenar los pares de valor clave. Cada clave se mapea a un cierto valor como se muestra en el siguiente:
Redis Hashes sigue la misma estructura interna. Pero no le permitirán almacenar tipos de valor complejos como set, list o hash. Hay algunas formas de apuntar los valores del campo hash a los otros tipos de datos complejos, pero no es sencillo.
Uso práctico de los hashes Redis
Los hashes redis son muy efectivos en dos escenarios diferentes:
Representación de objetos usando hashes Redis
En la programación, los objetos representan las entidades del mundo real con sus estados y comportamientos. Por lo general, un objeto tiene un identificador (nombre) y propiedades internas como se muestra en lo siguiente:
Los hashes redis son capaces de almacenar este tipo de objeto en su almacenamiento. Sabemos que Redis es el almacenamiento del par de valores clave. Por lo tanto, el objeto anterior se puede representar como se muestra en el siguiente:
Llave : Usuario: 001
Valor : Propiedades internas como un hash redis
La representación más detallada se muestra a continuación.
Llave : Usuario: 001
Valor : "Nombre" => "Mike"
"Edad" => "35"
"País" => "EE. UU."
"Ismarried" => "verdadero"
La parte de color verde es un valor de tipo hash redis. En este caso, obtuvimos cuatro campos en nuestro hash y la clave es el usuario: 001.
Almacenar valores de datos pequeños de manera compacta
Imagine que vamos a almacenar los pares de valor de campo 100000 en una base de datos Redis. La forma más típica es crear las 100000 claves de nivel superior que apuntan a los valores relevantes. Esta metodología no será eficiente como podría pensar. Por lo tanto, podemos usar los hash para optimizar el rendimiento.
Hay una ganancia de rendimiento en los hash cada vez que un hash tiene un pequeño número de campos. Redis aumenta la eficiencia de acceso en una cantidad considerable. Llamamos a la pequeña optimización de almacenamiento del hash de Redis. Por lo tanto, podemos mantener los 1000 hash cada uno con 100 campos internos como se muestra en lo siguiente:
Lo mejor de los hashes es que pueden almacenar hasta 2^32-1 pares de valor de campo en el formato de texto plano. Es una gran cantidad de datos, más de 4 mil millones.
Comandos de hash redis
Redis le permite realizar operaciones en hashes. Hay alrededor de 15 comandos hash disponibles para usar, como HSET, Hexists, HGGE, HGGELL, etc. Hay un par de operaciones atómicas disponibles para realizar en valores de campo de hash numérico. Es el incremento atómico y la disminución en los valores numéricos que usan Hincrby, y los comandos de Hincbyfloat.
El comando hexistes
El comando hexists se usa para verificar si un campo determinado está disponible en el hash particular en una clave especificada. Este comando tiene una complejidad de tiempo constante que se denota por Big O (1). Por lo tanto, es muy eficiente de usar.
Sintaxis:
Hexists key_name field_name
Nombre clave : Esta es la clave de nivel superior Redis de este hash.
nombre del campo : Este es el nombre del campo hash.
Valor de retorno de comando
El comando hexistes devuelve un valor entero de 1 o 0 basado en los resultados de la evaluación del comando. Vuelve a 1 si el campo está disponible en el hash especificado. Si el campo o la tecla hash no están disponibles, vuelve a 0.
Uso práctico del comando hexistes
Creemos un hash con un campo y verifiquemos cómo funciona el comando. Podemos usar el comando HSET para crear un hash con un par de valor de campo.
Usuario de HSET: 1 nombre Mike
A continuación, verificamos si el hash se ha agregado a la base de datos Redis con éxito. El comando hgetall se puede usar para obtener todos los pares de valor de campo para una tecla hash dada.
HGGELAL USUARIO: 1
Producción:
Ahora, revisemos el comportamiento del comando hexistes en este hash:
Usuario de hexistes: 1 nombre
En este escenario, el usuario: 1 es la clave hash. El nombre es el nombre del campo hash. Dado que el campo de nombre está disponible en el usuario: 1 hash, debería volver a 1.
Verifiquemos el comando con un campo que no está disponible en el hash dado.
Usuario de hexistes: 1 edad
En este caso, el campo de edad no está disponible en el usuario: 1 hash. Por lo tanto, la salida es 0.
De esta manera, puedes manipular los campos hash para su existencia en una llave hash dada. Esta es una operación muy eficiente en el tiempo y es útil en las manipulaciones de objetos en las bases de datos de Redis. Se tarda un tiempo constante en verificar la existencia del primer campo o el campo número 100. Por lo tanto, se recomienda utilizar los hashes Redis siempre que necesite almacenar objetos o datos simples.
Conclusión
Redis puede almacenar diferentes tipos de estructuras de datos para una clave específica. Los hashes son una de las estructuras de datos más populares utilizadas en las bases de datos Redis. Los hashes se pueden usar para representar y manipular los objetos y datos simples de manera efectiva. Redis admite varias operaciones hash. Los hexistes son uno de los comandos populares para verificar la existencia de un campo hash determinado en una clave hash.