Redis Xgroup

Redis Xgroup
I flussi Redis sono stati introdotti dalla versione 5.0 che rappresenta una tradizionale struttura dei dati del registro ad appenmente. I flussi Redis sono più avanzati di un normale registro in cui supporta i gruppi di consumatori e un accesso più rapido agli elementi del flusso.

I flussi consentono di consumare lo stesso flusso da diversi consumatori utilizzando il comando XRead. Con questo, gli stessi messaggi verranno inviati a più client. In alcuni casi, dobbiamo spingere un diverso sottoinsieme di messaggi dallo stesso flusso a più consumatori. Il concetto di gruppi di consumatori è stato implementato con Redis Streams per supportarlo come nella seguente illustrazione.

Come mostrato nell'illustrazione sopra, i tre consumatori Consumer1, Consumer2 e Consumer3 stanno consumando voci diverse dal flusso Userqueries. Ognuno di questi consumatori fa parte del gruppo di consumatori 1. Essere un membro del "consumatore, gruppo 1" garantisce i seguenti fatti:

  • Ogni voce sarà consumata da un consumatore diverso su tre consumatori in un determinato momento. Nessuna voce è consumata da due o più consumatori contemporaneamente.
  • È necessario un riconoscimento esplicito per informare che i messaggi spinti sono stati correttamente consumati da un consumatore.
  • Consumer Group 1 detiene l'ultimo ID di iscrizione consegnato e ogni volta che un consumatore richiede nuovi messaggi, fornisce solo i messaggi più recenti.
  • Ogni volta che un consumatore interroga la storia delle voci appartenenti a un determinato flusso, mostrerà solo i messaggi consegnati a quel particolare consumatore.
    • Consumatore 2 vede solo Query2: msg2 e query5: voci msg5 come cronologia dei messaggi appartenenti al 'Userqueries'

Il comando xgroup

Lo XGroup è il comando contenitore per la gestione dei gruppi di consumatori associati ai flussi di Redis. È costituito da diversi importanti sottocombi per creare/eliminare i gruppi di consumatori e creare/eliminare i consumatori appartenenti a un gruppo. La sintassi di base del comando xgroup è la seguente:

XGroup [[Value] [Options]…]

: Il nome del sottocomando per operazioni come la creazione e la cancellazione di consumatori e gruppi di consumatori.

: Gli argomenti del sottocomando se disponibili.

[valore]: Se un argomento prende un valore, può essere specificato. È facoltativo e consentito solo per determinati comandi.

Il risultato restituito varierà in base al sub-comand specificato.

I sottocombi XGroup

Diversi sottocampi sono disponibili per l'uso con il comando xgroup. C'è un sottocomando speciale chiamato 'aiuto' che visualizza tutti i sottocampi disponibili per l'uso.

Aiuto XGROUP

IL aiuto Il sottocomando restituisce un array di sottocampi con le loro descrizioni.

CREARE
IL CREARE Il sottocomando può essere utilizzato per creare un nuovo gruppo di consumatori per un determinato flusso. La sintassi è la seguente:

XGROUP Crea Stream_key Group_Name Entry_id | $ [mkstream] [voci vocira_read]

Ciò creerà un nuovo gruppo di consumatori identificato dal "gruppo_ group" associato al dato "stream_key '. IL 'Mkstream' l'opzione crea un nuovo flusso con la lunghezza di 0 se il flusso specificato non esiste nel Redis DataStore.

CreateConsumer
Quando è necessario creare un consumatore per un determinato gruppo, è possibile utilizzare il sottocomando CreateConsumer. Accetta solo la chiave di streaming, il nome del gruppo di consumatori e un nome univoco del consumatore come argomenti.

XGROUP Createconsumer Stream_key Group_name Consumer_Name

Delconsumer
Un consumatore creato può essere eliminato utilizzando il sottocomando DelConsumer con il comando xgroup. La sintassi del sottocomando Delconsumer è la seguente:

XGROUP DelConsumer Stream_key Group_name Consumer_Name

Si noti che prima di eliminare un consumatore dal gruppo del consumatore è richiedere o riconoscere tutti i messaggi in sospeso associati al consumatore. Questo comando restituirà il numero di messaggi in sospeso associati al consumatore eliminato.

DISTRUGGERE
Ogni volta che è necessario eliminare un gruppo di consumatori con tutti i consumatori e i messaggi in sospeso, il sottocomando di Destrow può essere utilizzato. Quindi, si consiglia di utilizzare questo comando con cura.

XGroup Destroy Stream_key Group_name

Questo comando restituirà un numero intero 0 o 1 che è il conteggio dei gruppi di consumatori cancellati.

IMPOSTA L'ID
Il sottocomando setid consente di modificare l'ultimo valore ID fornito. Ogni volta che è necessario elaborare tutte le voci dal flusso, l'ultimo ID consegnato dovrebbe essere impostato su 0 utilizzando il sottocomando setid.

XGROUP setid stream_key group_name entry_id | $ [voci voci voci_read]

Se l'ultimo ID consegnato è stato impostato correttamente, il comando restituirà una semplice stringa OK.

Conclusione

Il comando contenitore XGroup viene utilizzato per gestire i gruppi di consumo associati a un determinato flusso. Lo speciale AIUTO Il comando può essere utilizzato per visualizzare tutti i sottocombi disponibili per il comando xgroup. La creazione e la cancellazione di consumatori e gruppi di consumatori possono essere eseguiti utilizzando i sottocombi menzionati. Inoltre, il sottocomando SETID supporta l'aggiornamento dell'ultimo ID consegnato di un determinato gruppo di consumatori. Nel complesso, l'output del comando XGroup varia con il sottocomando utilizzato.