Redis xgroup

Redis xgroup
Se han introducido transmisiones de Redis de la versión 5.0 que representa una estructura tradicional de datos de registro de apertura. Las transmisiones de Redis son más avanzadas que un registro habitual donde admite grupos de consumo y un acceso más rápido a los elementos de la transmisión.

Las transmisiones permiten que la misma transmisión sea consumida por diferentes consumidores utilizando el comando xread. Con esto, los mismos mensajes se enviarán a varios clientes. En algunos casos, necesitamos impulsar un subconjunto diferente de mensajes de la misma transmisión a múltiples consumidores. El concepto de grupos de consumo se ha implementado con Redis Streams para apoyar esto como en la siguiente ilustración.

Como se muestra en la ilustración anterior, los tres consumidores Consumer1, Consumer2 y Consumer3 están consumiendo diferentes entradas de la transmisión Cuadro de usuarios. Cada uno de estos consumidores es parte del grupo de consumo 1. Ser miembro del 'Consumidor, Grupo 1' garantiza los siguientes hechos:

  • Cada entrada será consumida por un consumidor diferente de tres consumidores en un momento determinado. Dos o más consumidores consumen ninguna entrada a la vez.
  • Se necesita un reconocimiento explícito para notificar que los mensajes empujados han sido consumidos correctamente por un consumidor.
  • Consumer Group 1 posee la última ID de entrada entregada y cada vez que un consumidor solicita mensajes nuevos, solo proporciona los últimos mensajes.
  • Cada vez que un consumidor consulta el historial de las entradas que pertenecen a una transmisión determinada, solo mostrará los mensajes que se entregan a ese consumidor en particular.
    • Consumidor 2 Solo ve Query2: msg2 y Query5: Entradas MSG5 como la historia de los mensajes que pertenecen al 'Grupas de usuarios'

El comando xgroup

XGROUP es el comando contenedor para administrar los grupos de consumo asociados con las transmisiones de Redis. Consiste en varios subcomandos importantes para crear/eliminar grupos de consumo y crear/eliminar a los consumidores que pertenecen a un grupo. La sintaxis básica del comando xgroup es la siguiente:

Xgroup [[valor] [opciones] ...]

: El nombre del subcomando para operaciones como la creación y eliminación de consumidores y grupos de consumidores.

: Los argumentos del subcomando si están disponibles.

[valor]: Si un argumento toma un valor, se puede especificar. Es opcional y solo para ciertos comandos.

El resultado devuelto variará según el subcomcompando especificado.

Los subcomands Xgroup

Varios subcomandos están disponibles para usar con el comando xgroup. Hay un subcomando especial llamado 'ayuda' que muestra todos los subcomandos disponibles para usar.

Ayuda de Xgroup

El ayuda Subcomand Devuelve una variedad de subcomandos con sus descripciones.

CREAR
El CREAR El subcomando se puede utilizar para crear un nuevo grupo de consumo para una transmisión dada. La sintaxis es la siguiente:

Xgroup crea stream_key group_name entry_id | $ [mkstream] [Entriesread Entries_read]

Esto creará un nuevo grupo de consumo identificado por el 'Group_Name' que está asociado con lo dado 'Clave de flujo'. El 'Mktream' La opción crea una nueva secuencia con la longitud de 0 si la secuencia especificada no existe en el almacén de datos de Redis.

Createconsumer
Cuando necesite crear un consumidor para un grupo determinado, se puede usar el subcomando createConsumer. Acepta solo la clave de flujo, el nombre del grupo de consumo y un nombre único del consumidor como argumentos.

Xgroup createConsumer stream_key group_name Consumer_name

Delconsumer
Un consumidor creado se puede eliminar utilizando el subcomando Delconsumer con el comando XGROUP. La sintaxis del subcomando Delconsumer es la siguiente:

Xgroup delconsumer stream_key group_name consumer_name

Tenga en cuenta que antes de eliminar un consumidor del grupo de consumo es reclamar o reconocer todos los mensajes pendientes asociados con el consumidor. Este comando devolverá el número de mensajes pendientes asociados con el consumidor eliminado.

DESTRUIR
Siempre que necesite eliminar un grupo de consumo con todos los consumidores y mensajes pendientes, se puede utilizar el subcomando Destro. Por lo tanto, se recomienda usar este comando con cuidado.

Xgroup destruye stream_key group_name

Este comando devolverá un entero 0 o 1, que es el recuento de los grupos de consumo eliminados.

PON LA IDENTIFICACION
El subcomando SETID le permite modificar el último valor de ID entregado. Siempre que necesite procesar todas las entradas desde la transmisión, la última ID entregada debe establecerse en 0 utilizando el subcomando SETID.

Xgroup setid stream_key group_name entry_id | $ [Entriesread Entries_read]

Si la última ID entregada se ha establecido correctamente, el comando devolverá una cadena simple DE ACUERDO.

Conclusión

El comando de contenedor XGroup se utiliza para administrar los grupos de consumo asociados con una transmisión dada. El especial AYUDA El comando se puede usar para mostrar todos los subcomandos disponibles para el comando xgroup. La creación y la eliminación de los consumidores y los grupos de consumidores se pueden hacer utilizando los subcomandos mencionados. Además, el subcomando SETID admite la actualización de la última ID entregada de un grupo de consumo dado. En general, la salida del comando xgroup varía con el subcomando que se utiliza.