Cómo usar transmisiones Redis

Cómo usar transmisiones Redis

Las transmisiones son una estructura de datos simple pero versátil y poderosa que le permite implementar transmisiones en Redis. Las transmisiones son tipos incorporados de Redis versión 5.0 y puede ayudar a eliminar las limitaciones de la estructura de datos de registro.

En este artículo, nos centraremos en usar y trabajar con Redis Streams en lugar de la implementación real. Sin embargo, puede consultar los documentos para obtener más.

Redis crea transmisión

Para crear una transmisión en Redis, usamos el comando XADD seguido del nombre, ID, clave y datos de la secuencia como parámetros.

La sintaxis es como se muestra:

Xadd [nombre de transmisión] [id] [clave] [datos]

El ejemplo es como se muestra:

127.0.0.1: 6379> xadd dataStream * IP 231.17.140.219
"1646904960928-0"

En el ejemplo anterior, ejecutamos el comando xadd para agregar una nueva transmisión de flujo. En nuestro ejemplo, dale a la entrada DataStream con una identificación única.

Aunque puede establecer una identificación manualmente, usamos el asterisco para decirle a Redis que genere automáticamente un identificador único. Esta es la salida del comando anterior.

NOTA: Cada IP generada se incrementa monotónicamente de las anteriores. En la mayoría de los casos, rara vez necesitará establecer la identificación para una entrada manualmente. Podemos hacer esto como se muestra en el siguiente comando:

127.0.0.1: 6379> xadd dataStream 74376383723373 IP 171.17.140.219
"74376383723373-0"

En el comando anterior, especificamos manualmente la ID de entrada.

La entrada contiene un campo y valor IP y IP correspondiente.

Redis Agregar flujo con límite

En algunos casos, es posible que no desee que las entradas de flujo superen un valor especificado. Puede hacer esto especificando el parámetro MaxLen como:

Xadd dataStream maxlen 100 * IP 231.17.140.219

Entradas de transmisión de Redis

Para obtener el número de entradas en una transmisión Redis, podemos usar el comando XLEN como:

127.0.0.1: 6379> xlen dataStream
(entero) 3

Esto debería devolver un entero que denota el número de entradas en la transmisión.

Obtener DAT de la transmisión

Podemos iterar sobre las entradas en un flujo especificando las ID de inicio y finalización como se muestra en el comando:

127.0.0.1: 6379> xrange dataStream - +
1) 1) "1646904960928-0"
2) 1) "IP"
2) "231.17.140.219 "
2) 1) "74376383723373-0"
2) 1) "IP"
2) "231.17.140.219 "
3) 1) "74376383723373-1"
2) 1) "IP"
2) "231.17.140.219 "

El uso de los parámetros - + (límite inferior y superior) devuelve todas las entradas en la transmisión. También puede especificar un rango como:

127.0.0.1: 6379> Xrange DataStream 1646904960928-0 74376383723373-0
1) 1) "1646904960928-0"
2) 1) "IP"
2) "231.17.140.219 "
2) 1) "74376383723373-0"
2) 1) "IP"
2) "231.17.140.219 "

El comando debe devolver las entradas dentro del rango de identificación especificado.

Redis lee todo

Para leer cada entrada en la transmisión que comienza desde la parte superior, use el comando xread como se muestra:

127.0.0.1: 6379> Xread Count 100 Streams DataStream 0
1) 1) "DataStream"
2) 1) 1) "1646904960928-0"
2) 1) "IP"
2) "231.17.140.219 "
2) 1) "74376383723373-0"
2) 1) "IP"
2) "231.17.140.219 "
3) 1) "74376383723373-1"
2) 1) "IP"
2) "231.17.140.219 "

Para leer solo nuevos datos a medida que llega, use el comando como:

127.0.0.1: 6379> Xread bloque 10000 transmisión dataStream $

El comando esperará desde cualquier entrada de transmisión para los milisegundos especificados y luego cierre. En nuestro caso, establecemos la espera de 10000 milisegundos.

Conclusión

Este tutorial proporciona los conceptos básicos de trabajar con flujos de datos en Redis. Consulte los documentos para más.