Redis Stream può archiviare coppie di valori di campo all'interno dei suoi macro nodi. È efficiente dalla memoria e veloce nell'accesso alle voci del flusso poiché si basa su una struttura dell'albero Radix. Le voci sembrano le coppie di valore chiave Hash Redis.
L'illustrazione precedente mostra un flusso memorizzato alla chiave "SurveryResponse: User01". Contiene n numero di voci.
Contare le voci del flusso con Xlen
Nelle applicazioni del mondo reale, potremmo aver bisogno di sapere quante voci sono disponibili in un determinato flusso. Non è pratico effettuare una chiamata XRANGE con ID minimi e massimi possibili per interrogare tutte le voci per flusso e contarle a livello di programmazione. Consuma tempo per due operazioni per leggere e contare a livello di programmazione.
Quindi, Redis fornisce un Xlen Comando per contare le voci per un flusso memorizzato su una chiave specificata. Questo comando ha una complessità temporale costante, che è veloce per le tue applicazioni.
Sintassi
Xlen
IL Xlen Il comando restituisce un numero intero, il numero di voci memorizzate in un flusso.
I flussi sono un po 'diversi dagli altri tipi di dati Redis perché può esistere un flusso con zero voci. I flussi di Redis possono avere più gruppi di consumo collegati. IL Xdel Il comando non eliminerà il flusso stesso anche se tutte le voci sono state eliminate. Quindi il Xlen Il comando potrebbe restituire 0 in due casi:
Il flusso memorizzato alla chiave SurveyResponse: User02 è vuoto. Ma ha due gruppi di consumo collegati. Quindi, il flusso esiste. Nelle applicazioni del mondo reale, è necessario fare un controllo esplicito con il Esiste comanda per verificare se esiste o meno la chiave Redis.
Esempio: conta il numero di utenti che partecipano a un sondaggio online
Supponiamo che un ristorante abbia condotto un sondaggio online per ottenere una valutazione di stelle dai suoi clienti sulla qualità del loro servizio. Hanno utilizzato un negozio di dati Redis in memoria per tenere traccia di ogni valutazione del cliente. Ogni voce di flusso è composta da un paio di coppie di valore sul campo per archiviare la valutazione come intero e ID utente come stringa.
Creiamo un flusso usando il comando XADD.
XADD RestaurantSurvery * UserId 1 Valutazione 3
XADD RestaurantSurvery * UserId 2 Valutazione 5
XADD RestaurantSurvery * UserId 3 Valutazione 1
XADD RestaurantSurvery * UserId 4 Valutazione 5
Quattro voci sono state aggiunte al flusso archiviato al tasto ristoranti di sprovvista.
Successivamente, useremo il Xlen comanda per contare il numero di utenti che hanno preso parte al sondaggio.
Xlen RestaurantSurvery
Produzione:
Come previsto, il valore di reso è 4. Supponiamo che oltre 10.000 clienti abbiano partecipato al sondaggio. Poi il Xlen Il comando sarebbe un salvavita. Anche il comando Redis Xlen richiederebbe tempo costante per contare i 4 clienti o 10.000 clienti.
Conclusione
I flussi Redis possono contenere migliaia di voci fino a raggiungere la memoria massima, in cui ogni voce sembra una coppia di valore di campo. Di solito, è ingombrante contare il numero di voci memorizzate in un programma di flusso in termini di. Consuma tempo per due operazioni come la lettura e il conteggio. Quindi, Redis fornisce l'operazione di conteggio fuori dalla scatola con il comando xlen. Ha una complessità temporale costante che è rapidamente da utilizzare in applicazioni ad alte prestazioni. Il comando Xlen prende solo la chiave del flusso come parametro.