Come usare i stream di Redis

Come usare i stream di Redis

I flussi sono una struttura di dati semplice ma versatile e potente che consente di implementare i flussi in Redis. I flussi sono tipi integrati dalla versione 5 di Redis.0 e può aiutare a rimuovere i limiti della struttura dei dati del registro.

In questo articolo, ci concentreremo sull'uso e il lavoro con i flussi di Redis piuttosto che sull'implementazione effettiva. Puoi, tuttavia, controllare i documenti per ulteriori informazioni.

Redis Crea stream

Per creare un flusso in Redis, utilizziamo il comando XADD seguito dal nome del flusso, dall'ID, dalla chiave e dai dati come parametri.

La sintassi è come mostrata:

XADD [Nome flusso] [ID] [Key] [Data]

L'esempio è come mostrato:

127.0.0.1: 6379> XADD Datastream * IP 231.17.140.219
"1646904960928-0"

Nell'esempio sopra, eseguiamo il comando XADD per aggiungere un nuovo flusso. Nel nostro esempio, dare la voce Datastream con un ID univoco.

Sebbene sia possibile impostare un ID manualmente, utilizziamo l'asterisco per dire a Redis per generare automaticamente un identificatore univoco. Questo è l'output del comando sopra.

NOTA: Ogni IP generato è monotonicamente incrementato da quelli precedenti. Nella maggior parte dei casi, raramente dovrai impostare manualmente l'ID per una voce. Possiamo farlo come mostrato nel comando seguente:

127.0.0.1: 6379> XADD DataStream 74376383723373 IP 171.17.140.219
"74376383723373-0"

Nel comando sopra, specifichiamo manualmente l'ID voce.

La voce contiene un campo e un valore IP e IP corrispondente.

Redis Aggiungi flusso con limite

In alcuni casi, potresti non voler che le voci del flusso superano un valore specificato. Puoi farlo specificando il parametro Maxlen come:

XADD DataStream Maxlen 100 * IP 231.17.140.219

Voci di Redis Stream

Per ottenere il numero di voci in un flusso di Redis, possiamo usare il comando Xlen come:

127.0.0.1: 6379> Xlen Datastream
(intero) 3

Questo dovrebbe restituire un numero intero che indica il numero di voci nel flusso.

Ottenere DAT dal streaming

Possiamo iterare sulle voci in un flusso specificando gli ID iniziali e finali come mostrato nel 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 "

Utilizzando i parametri - + (inferiore e superiore) restituisce tutte le voci nel flusso. Puoi anche specificare un intervallo come:

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 "

Il comando deve restituire le voci all'interno dell'intervallo ID specificato.

Redis ha letto tutto

Per leggere ogni voce nel flusso a partire dall'alto, utilizzare il comando XRead come mostrato:

127.0.0.1: 6379> Conteggio XRead 100 flussi 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 "

Per leggere solo nuovi dati quando arriva, usa il comando come:

127.0.0.1: 6379> Xread Block 10000 Streams Datastream $

Il comando aspetterà da qualsiasi voci di flusso per i millisecondi specificati e quindi chiuderà. Nel nostro caso, abbiamo fissato l'attesa per 10000 millisecondi.

Conclusione

Questo tutorial fornisce le basi del lavoro con i flussi di dati in Redis. Controlla i documenti per ulteriori informazioni.