Redis Stream kan lagre feltverdipar i sine makronoder. Det er minneeffektivt og raskt når det. Oppføringene ser ut som Redis Hash-nøkkelverdipar.
Den forrige illustrasjonen viser en strøm som er lagret på tasten “SurvyResponse: user01”. Den inneholder n antall oppføringer.
Telle strømoppføringer med xlen
I applikasjoner i den virkelige verden må vi kanskje vite hvor mange oppføringer som er tilgjengelige i en gitt strøm. Det er ikke praktisk å ringe et Xrange -samtale med minimum og maksimal mulige ID -er for å spørre om alle oppføringene per strøm og telle dem programmatisk. Det bruker tid for to operasjoner å lese og telle programmatisk.
Derfor gir Redis en Xlen Kommando for å telle oppføringer for en strøm som er lagret på en spesifisert nøkkel. Denne kommandoen har konstant tidskompleksitet, noe som er raskt for applikasjonene dine.
Syntaks
Xlen
De Xlen Kommando returnerer et heltall, antall oppføringer som er lagret i en strøm.
Strømmene er litt forskjellige fra andre Redis -datatyper fordi en strøm kan eksistere med null oppføringer. Redis -strømmer kan ha flere forbrukergrupper tilknyttet. De Xdel Kommandoen vil ikke slette selve strømmen selv om alle oppføringene er slettet. Derav Xlen Kommandoen kan returnere 0 i to tilfeller:
Strømmen som er lagret på tasten Surveyresponse: User02 er en tom. Men det har to forbrukergrupper tilknyttet. Derfor eksisterer strømmen. I applikasjoner i den virkelige verden må du gjøre en eksplisitt sjekk med Eksisterer kommando for å bekrefte om redis -tasten eksisterer eller ikke.
Eksempel: Tell antall brukere som deltar i en online undersøkelse
La oss anta at en restaurant har gjennomført en online undersøkelse for å få en stjernerangering fra kundene sine på servicekvaliteten. De har brukt en Data Store i Memory Redis for å holde oversikt over hver kundevurdering. Hver strømoppføring består av et par feltverdipar for å lagre vurderingen som et heltall og bruker-ID som en streng.
La oss opprette en strøm ved hjelp av XADD -kommandoen.
XADD RESTANSEMENTSURIVERY * UserId 1 Rating 3
XADD RESTANSEMENTSURIVERY * UserId 2 Rating 5
XADD RestaurantSurvery * UserId 3 Rating 1
XADD RestaurantSurvery * UserId 4 Rating 5
Fire oppføringer er lagt til strømmen som er lagret på nøkkelen RestautSeurvey.
Deretter vil vi bruke Xlen kommando for å telle antall brukere som deltok i undersøkelsen.
XLEN RESTANSSURIVERY
Produksjon:
Som forventet er returverdien 4. Anta at mer enn 10.000 kunder har deltatt i undersøkelsen. Og så Xlen Kommandoen ville være en livredder. Selv Redis XLEN -kommandoen vil ta konstant tid å telle de 4 kundene eller 10.000 kunder.
Konklusjon
Redis-strømmer kan inneholde tusenvis av oppføringer til det maksimale minnet er nådd, der hver oppføring ser ut som et feltverdipar. Vanligvis er det tungvint å telle antall oppføringer som er lagret i et strømprogrammessig. Det bruker tid til to operasjoner som å lese og telle. Derfor gir Redis tellende operasjon ut av boksen med XLEN -kommandoen. Det har konstant tidskompleksitet som er rask å bruke i høyytelsesapplikasjoner. XLEN -kommandoen tar bare nøkkelen til strømmen som en parameter.