Redis Hlen

Redis Hlen

Redis hash campos

Los hashes son un tipo de datos popular en las tiendas Redis porque pueden representar de manera integral objetos del mundo real. Los objetos del mundo real contienen campos asignables a los valores, como se muestra en lo siguiente.

En Redis, las disposiciones de estructura de datos de hashmap, pares de nombre de valor. Un par de valores de nombre se puede identificar como un campo en una entidad del mundo real. Mapeemos la instancia de empleado anterior a un hash redis.

En el ejemplo anterior, obtuvimos la tecla Redis de nivel superior "Empleado: 1", Donde almacenamos nuestro hash. Hay cuatro campos hash que representan cuatro atributos del objeto del empleado. Redis Hashes puede almacenar más de 4 mil millones de campos hash que son más que suficientes para representar sus objetos. Lo mejor es que todavía requiere un espacio mínimo en su instancia de base de datos Redis. Es más eficiente mantener 1000 campos de hash dentro de 10 claves de Redis de nivel superior para almacenar 10000 datos de valor clave que para almacenar esa cantidad de datos en 10000 claves Redis de nivel superior.

Comando redis hlen

En algunas aplicaciones, es necesario contar el número de propiedades o campos disponibles para un objeto dado. Si se almacena en un hash redis, entonces está a un comando de recuperar el número de campos hash en la clave especificada. El "HlenEl comando se puede usar para contar el número de campos hash contenidos en un hash dado.

Sintaxis

1
Hlen hash_key

clave hash: Esta es la tecla Redis de nivel superior en la que se ha almacenado el hash.

Este comando devuelve un valor entero que es el número de campos hash almacenados en una clave dada. Cuando el hash_key no existe, este comando devolverá 0. Este comando tiene complejidad de tiempo constante o (1), lo que lo motiva a usarlo en aplicaciones de alto rendimiento.

Ejemplo: contando la cantidad de artículos en un carrito de compras

Supongamos que estamos utilizando la base de datos Redis para almacenar artículos de carrito de compras. La idea es identificar a cada cliente con una llave redis. Cada clave Redis almacena múltiples campos de hash que representan un artículo de carrito de compras. El objeto del artículo del carrito de compras se vería como el siguiente.

Podemos usar el comando HSET para agregar algunos elementos de carrito para "Cliente: 1".

1
Cliente de HSET: 1 Apple 10 Beer 5 Milk 2

Ahora el cliente: 1 objeto debe parecerse al siguiente.

Hay 3 campos almacenados en el Clave "Cliente: 1". Usaremos el comando HLEN para contar el número de campos en la clave "Cliente: 1".

1
Cliente de HLEN: 1

Producción:

La salida es 3, como se esperaba.

Eliminemos el campo de "cerveza" en el Cliente: 1 clave. El comando HDEL se puede usar para eliminar un campo de una clave dada.

1
Cliente de HDEL: 1 cerveza

Ahora podemos verificar los campos hash existentes ejecutando el comando hgetall.

1
HGGELL CLIENTE: 1

Producción:

El campo "Beer: 5" se ha eliminado con éxito. Cuentemos el número de campos nuevamente usando el comando HLEN.

1
Cliente de HLEN: 1

Dado que solo quedan dos campos hash en la clave "Cliente: 1", la salida debe ser 2.

Producción:

Se recomienda usar el comando HLEN cuando hay un requisito para contar el número de campos hash almacenados en una clave dada. Es un comando muy rápido y fácil de usar en sus aplicaciones basadas en Redis.

Verifiquemos la salida de la clave de no existencia también.

1
Hlen sin existencia

Producción:

La salida es 0, como se esperaba.

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 hash se pueden usar para representar y manipular objetos y datos simples de manera efectiva. Redis admite varias operaciones hash. El HLEN se puede usar para contar el número de campos hash almacenados en una clave Redis dada. Por lo general, devuelve un entero que es el recuento de los campos hash. Si la tecla Redis no existe, devolverá 0. Es realmente rápido ya que no necesitamos realizar una operación de lectura separada.