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.219En 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.219En 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.219Entradas 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 dataStreamEsto 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 - +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-0El 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 0Para 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.