Primeros pasos con Redis - Redis Stream

La dirección del texto original se actualiza y el efecto de lectura es mejor.

Primeros pasos con Redis - Redis Stream | CoderMast Programación Mast Primeros pasos con Redis - Redis Stream Redis Stream es una estructura de datos recientemente agregada en la versión 5.0 de Redis. Redis Stream se usa principalmente para la cola de mensajes (MQ, Message Queue). Redis en sí tiene una suscripción de publicación de Redis (pub/sub) para realizar la función de la cola de mensajes, pero tiene la desventaja de que los mensajes no se pueden conservar. Si hay una desconexión de la red, tiempo de inactividad de Redis, etc., el mensaje se descartará. En pocas palabras, publicar y suscribirse (pub/sub) puede distribuir mensajes, pero no puede registrar mensajes históricos. Redis Stream proporciona persistencia de mensajes y funciones de replicación de copias de seguridad maestras, lo que permite que cualquier cliente acceda a los datos en cualquier momento, recuerda la ubicación de acceso de cada cliente y garantiza que los mensajes no se pierdan. https://www.codermast.com/database/redis/redis-stream.html

Redis Stream es una estructura de datos recientemente agregada en la versión 5.0 de Redis.

Redis Stream se usa principalmente para la cola de mensajes (MQ, Message Queue). Redis en sí tiene una suscripción de publicación de Redis (pub/sub) para realizar la función de la cola de mensajes, pero tiene la desventaja de que los mensajes no se pueden conservar. Si hay una desconexión de la red, tiempo de inactividad de Redis, etc., el mensaje se descartará.

En pocas palabras, publicar y suscribirse (pub/sub) puede distribuir mensajes, pero no puede registrar mensajes históricos.

Redis Stream proporciona persistencia de mensajes y funciones de replicación de copias de seguridad maestras, lo que permite que cualquier cliente acceda a los datos en cualquier momento, recuerda la ubicación de acceso de cada cliente y garantiza que los mensajes no se pierdan.

La estructura de Redis Stream es la siguiente. Tiene una lista de mensajes que encadena todos los mensajes agregados. Cada mensaje tiene una identificación única y el contenido correspondiente:

 

Cada Stream tiene un nombre único, que es la clave de Redis, que se crea automáticamente cuando usamos el comando xadd por primera vez para agregar un mensaje.

Análisis de la figura anterior:

  • Grupo de consumidores: grupo de consumidores, creado con el comando XGROUP CREATE, un grupo de consumidores tiene varios consumidores (Consumer).
  • last_delivered_id: Cursor, cada grupo de consumidores tendrá un cursor last_delivered_id, cualquier consumidor que lea el mensaje moverá el cursor last_delivered_id hacia adelante.
  • Pending_ids: la variable de estado del consumidor (Consumer), que se utiliza para mantener la identificación no confirmada del consumidor. Los id_pendientes registran los mensajes leídos actualmente por el cliente, pero no hay acuse de recibo (carácter de reconocimiento: carácter de confirmación).

Comandos relacionados con la cola de mensajes:

  • XADD - agregar un mensaje al final
  • XTRIM - Recorta flujos para limitar la longitud
  • XDEL - eliminar mensaje
  • XLEN: obtiene la cantidad de elementos que contiene la secuencia, es decir, la longitud del mensaje
  • XRANGE: obtenga la lista de mensajes, filtrará automáticamente los mensajes eliminados
  • XREVRANGE: obtenga la lista de mensajes al revés, con ID de mayor a menor
  • XREAD: obtenga una lista de mensajes de manera bloqueante o no bloqueante

Comandos relacionados con el grupo de consumidores:

  • XGROUP CREATE - Crear un grupo de consumidores
  • GRUPO XREADGROUP: leer mensajes en un grupo de consumidores
  • XACK: marca un mensaje como "manejado"
  • XGROUP SETID: establezca una nueva ID de último mensaje entregado para un grupo de consumidores
  • XGROUP DELCONSUMER - eliminar un consumidor
  • XGROUP DESTROY - Eliminar un grupo de consumidores
  • XPENDING - muestra información sobre mensajes pendientes
  • XCLAIM - Transferir la propiedad de los mensajes
  • XINFO: vea información sobre flujos y grupos de consumidores;
  • GRUPOS XINFO - imprimir información sobre grupos de consumidores;
  • XINFO STREAM - Imprimir información de flujo

# XAÑADIR

Use XADD para agregar mensajes a la cola, si la cola especificada no existe, cree una cola, formato de sintaxis XADD:

XADD key ID field value [field value ...]

  • key : el nombre de la cola, créela si no existe
  • ID: id del mensaje, usamos * para indicar que es generado por redis, el cual se puede personalizar, pero el incremento debe ser garantizado por nosotros mismos.
  • valor del campo: registro.

#XTRIM _

Use XTRIM para recortar la transmisión y limitar la longitud, formato de sintaxis:

XTRIM key MAXLEN [~] count

  • clave: nombre de la cola
  • MAXLEN : longitud
  • número de cuenta

#XDEL_ _

Use XDEL para eliminar mensajes, formato de sintaxis:

XDEL key ID [ID ...]

  • clave: nombre de la cola
  • identificación: identificación del mensaje

#XLEN _

Use XLEN para obtener la cantidad de elementos contenidos en la secuencia, es decir, la longitud del mensaje, el formato de sintaxis es:

XLEN key

  • clave: nombre de la cola

#RANGO X

Use XRANGE para obtener la lista de mensajes y los mensajes eliminados se filtrarán automáticamente. El formato de sintaxis es:

XRANGE key start end [COUNT count]

  • clave: nombre de la cola
  • start : valor de inicio, - significa el valor mínimo
  • end: el valor final, + significa el valor máximo
  • número de cuenta

# RANGOXREV

Use XREVRANGE para obtener la lista de mensajes y los mensajes eliminados se filtrarán automáticamente. El formato de sintaxis es:

XREVRANGE key end start [COUNT count]

  • clave: nombre de la cola
  • end: el valor final, + significa el valor máximo
  • start : valor de inicio, - significa el valor mínimo
  • número de cuenta

# LEER X

Use XREAD para obtener la lista de mensajes de forma bloqueante o no bloqueante, el formato de sintaxis es:

XREAD [COUNT count] [BLOCK milliseconds] STREAMS key [key ...] id [id ...]

  • número de cuenta
  • milisegundos: opcional, la cantidad de milisegundos para bloquear, si no se establece, es modo sin bloqueo
  • clave: nombre de la cola
  • identificación: identificación del mensaje

# CREAR GRUPO X

Use XGROUP CREATE para crear un grupo de consumidores, el formato de sintaxis es:

XGROUP [CREATE key groupname id-or-$] [SETID key groupname id-or-$] [DESTROY key groupname] [DELCONSUMER key groupname consumername]

  • key : el nombre de la cola, créela si no existe
  • nombre del grupo: nombre del grupo.
  • $ : Indica el consumo desde el final, solo se aceptan mensajes nuevos y se ignoran todos los mensajes de Stream actuales.

Consumir desde cero:

 

XGROUP CREATE mystream consumer-group-name 0-0 Consumir desde el final:

XGROUP CREATE mystream consumer-group-name $

# GRUPO XREADGROUP

Use XREADGROUP GROUP para leer mensajes en el grupo de consumidores, el formato de sintaxis es:

XREADGROUP GROUP group consumer [COUNT count] [BLOCK milliseconds] [NOACK] STREAMS key [key ...] ID [ID ...]

  • grupo: nombre del grupo de consumidores
  • consumidor: nombre del consumidor.
  • count : el número de lecturas.
  • milisegundos: el número de milisegundos a bloquear.
  • clave: el nombre de la cola.
  • ID: ID del mensaje. XREADGROUP GROUP consumer-group-name consumer-name COUNT 1 STREAMS mystream >

Supongo que te gusta

Origin blog.csdn.net/qq_33685334/article/details/131252599
Recomendado
Clasificación