Hvordan bruke Redis -strømmer

Hvordan bruke Redis -strømmer

Strømmer er en enkel, men allsidig og kraftig datastruktur som lar deg implementere strømmer i Redis. Strømmer er innebygde typer fra Redis versjon 5.0 og kan bidra til å fjerne begrensningene i loggdatastrukturen.

I denne artikkelen vil vi fokusere på å bruke og jobbe med Redis -strømmer i stedet for selve implementeringen. Du kan imidlertid sjekke dokumentene for mer.

Redis skaper strøm

For å lage en strøm i Redis, bruker vi XADD -kommandoen etterfulgt av strømnavnet, ID, nøkkel og data som parametere.

Syntaksen er som vist:

Xadd [stream name] [id] [nøkkel] [data]

Eksempel er som vist:

127.0.0.1: 6379> Xadd DataStream * IP 231.17.140.219
"1646904960928-0"

I eksemplet ovenfor kjører vi XADD-kommandoen for å legge til en ny strøminngang. I vårt eksempel, gi oppføringsdatastreamet med en unik ID.

Selv om du kan angi en ID manuelt, bruker vi stjerne for å fortelle Redis for å automatisk generere en unik identifikator. Dette er output fra kommandoen ovenfor.

MERK: Hver generert IP er monotonisk økt fra de forrige. I de fleste tilfeller vil du sjelden trenge å angi ID for en oppføring manuelt. Vi kan gjøre dette som vist i kommandoen nedenfor:

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

I kommandoen over spesifiserer vi manuelt oppførings -ID.

Oppføringen har et felt og verdi IP og tilsvarende IP.

Redis Legg til strøm med grense

I noen tilfeller vil du kanskje ikke at strømoppføringene skal gå over en spesifikk verdi. Du kan gjøre dette ved å spesifisere maxlen -parameteren som:

XADD DataStream Maxlen 100 * IP 231.17.140.219

Redis Stream -oppføringer

For å få antall oppføringer i en Redis -strøm, kan vi bruke XLEN -kommandoen som:

127.0.0.1: 6379> xlen Datastream
(Heltall) 3

Dette skal returnere et heltall som angir antall oppføringer i strømmen.

Få dat fra strømmen

Vi kan iterere over oppføringene i en strøm ved å spesifisere start- og slutt -ID -ene som vist i kommandoen:

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 "

Bruke parametrene - + (nedre og øvre grense) returnerer alle oppføringene i strømmen. Du kan også spesifisere et område som:

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 "

Kommandoen skal returnere oppføringene innen ID -området som er spesifisert.

Redis leste alt

For å lese hver oppføring i strømmen som starter fra toppen, bruk xread -kommandoen som vist:

127.0.0.1: 6379> xread count 100 strømmer 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 "

For å lese bare nye data når de kommer, bruk kommandoen som:

127.0.0.1: 6379> XREAD Block 10000 Streams Datastream $

Kommandoen vil vente fra noen strømoppføringer for de spesifiserte millisekundene og deretter lukke. I vårt tilfelle satte vi ventetiden for 10000 millisekunder.

Konklusjon

Denne opplæringen gir det grunnleggende om å jobbe med datastrømmer i Redis. Sjekk dokumentene for mer.