Comando redis xlen

Comando redis xlen
Redis Stream es una estructura de datos de registro que supera las limitaciones de un archivo de registro de solo experiencia ordinario. Esta es la nueva incorporación a los tipos de datos Redis de la versión 5.0. Se basa en el concepto de consumo editorial donde múltiples fuentes publican datos en la transmisión, y varios consumidores o grupos de consumidores leen de él.

Redis Stream puede almacenar pares de valor de campo dentro de sus nodos macro. Es eficiente y rápido en la memoria para acceder a las entradas de flujo, ya que se basa en una estructura de árbol de radix. Las entradas se parecen a los pares de valores de llave de hash redis.

La ilustración anterior muestra una transmisión almacenada en la tecla "SurveryResponse: User01". Contiene n número de entradas.

Entradas de transmisión de conteo con xlen

En aplicaciones del mundo real, es posible que necesitemos saber cuántas entradas están disponibles en un flujo determinado. No es práctico hacer una llamada XRange con ID de mínimo y máximo posibles para consultar todas las entradas por transmisión y contarlas programáticamente. Consume tiempo para que dos operaciones lean y cuenten programáticamente.

Por lo tanto, Redis proporciona un Xlen Comando para contar entradas para una transmisión almacenada en una clave especificada. Este comando tiene complejidad de tiempo constante, que es rápida para sus aplicaciones.

Sintaxis

Xlen

El Xlen El comando devuelve un entero, el número de entradas almacenadas en una transmisión.

Las transmisiones son un poco diferentes de otros tipos de datos Redis porque una secuencia puede existir con entradas cero. Las transmisiones de Redis pueden tener múltiples grupos de consumo adjuntos. El Xdel El comando no eliminará la transmisión en sí, incluso si se han eliminado todas las entradas. Por lo tanto, la Xlen El comando puede devolver 0 en dos casos:

  1. La transmisión está vacía o todas las entradas ya se han eliminado.
  2. La tecla de transmisión no existe.

La transmisión almacenada en la tecla vigilancia de vigilancia: usuario02 es uno vacío. Pero tiene dos grupos de consumo adjuntos. Por lo tanto, la corriente existe. En aplicaciones del mundo real, debe hacer una verificación explícita con el Existe Comandar para verificar si la tecla Redis existe o no.

Ejemplo: Cuente el número de usuarios que participan en una encuesta en línea

Supongamos que un restaurante ha realizado una encuesta en línea para obtener una calificación de estrella de sus clientes en su calidad de servicio. Han utilizado un almacén de datos Redis en memoria para realizar un seguimiento de cada calificación del cliente. Cada entrada de transmisión consiste en un par de pares de valor de campo para almacenar la calificación como entero e ID de usuario como una cadena.

Creemos una transmisión usando el comando xadd.

XADD Restaurantesurvery * UserId 1 Calificación 3
XADD Restaurantesurvery * UserID 2 Calificación 5
XADD RESTAURENTSURNY * USERID 3 Calificación 1
XADD Restaurantesurvery * UserId 4 Calificación 5

Se han agregado cuatro entradas a la corriente almacenada en la llave comisión de restaurantes.

A continuación, usaremos el Xlen Comando para contar el número de usuarios que participaron en la encuesta.

XLEN RESTAURENTSURNY

Producción:

Como se esperaba, el valor de retorno es 4. Suponga que más de 10,000 clientes han participado en la encuesta. Entonces el Xlen El comando sería un salvavidas. Incluso el comando Redis XLEN tomaría un tiempo constante para contar los 4 clientes o 10,000 clientes.

Conclusión

Las transmisiones de Redis pueden contener miles de entradas hasta que se alcanza la memoria máxima, donde cada entrada parece un par de valores de campo. Por lo general, es engorroso contar el número de entradas almacenadas en un programa de transmisión en cuanto al programa. Consume tiempo para dos operaciones como leer y contar. Por lo tanto, Redis proporciona operación de recuento fuera del cuadro con el comando xlen. Tiene una complejidad de tiempo constante que es rápida de usar en aplicaciones de alto rendimiento. El comando xlen solo toma la clave de la secuencia como parámetro.