Redis xgroup

Redis xgroup
Redis -strømmer er introdusert fra versjon 5.0 som representerer en tradisjonell append-bare loggdatastruktur. Redis -strømmer er mer avanserte enn en vanlig logg der den støtter forbrukergrupper og raskere tilgang til strømelementene.

Strømmer gjør at den samme strømmen kan konsumeres av forskjellige forbrukere som bruker XREAD -kommandoen. Med dette vil de samme meldingene bli sendt til flere klienter. I noen tilfeller må vi skyve et annet undergruppe av meldinger fra samme strøm til flere forbrukere. Forbrukergruppekonseptet er implementert med Redis -strømmer for å støtte dette som i følgende illustrasjon.

Som vist i illustrasjonen ovenfor, de tre forbrukerne Forbruker1, forbruker2 og forbruker3 Får forskjellige oppføringer fra strømmen BrukerQueries. Hver av disse forbrukerne er en del av forbrukergruppen 1. Å være medlem av 'forbruker, gruppe 1' garanterer følgende fakta:

  • Hver oppføring vil bli konsumert av en annen forbruker av tre forbrukere på et gitt tidspunkt. Ingen oppføring forbrukes av to eller flere forbrukere samtidig.
  • En eksplisitt erkjennelse er nødvendig for å varsle om at de pressede meldingene er blitt konsumert av en forbruker på riktig måte.
  • Forbrukergruppe 1 har den sist leverte inngangs -IDen, og når en forbruker ber om nye meldinger, gir den bare de nyeste meldingene.
  • Hver gang en forbruker spør om historien til oppføringene som tilhører en gitt strøm, vil den bare vise meldingene som blir levert til den aktuelle forbrukeren.
    • Forbruker 2 ser bare Query2: MSG2 og spørring5: MSG5 -oppføringer som historien til meldinger som tilhører 'UserQueries'

XGroup -kommandoen

Xgroup er containerkommandoen for å administrere forbrukergruppene tilknyttet Redis -strømmer. Den består av flere viktige underkommandoer for å opprette/slette forbrukergrupper og opprette/slette forbrukere som tilhører en gruppe. Den grunnleggende syntaksen til XGroup -kommandoen er som følger:

Xgroup [[verdi] [alternativer]…]

: Underkommandenavnet for operasjoner som opprettelse og sletting av forbrukere og forbrukergrupper.

: Underkommandiske argumenter hvis de er tilgjengelige.

[verdi]: Hvis et argument tar en verdi, kan det spesifiseres. Det er valgfritt og bare tillatt for visse kommandoer.

Det returnerte resultatet vil variere basert på det spesifiserte underkommandoen.

XGroup -underkommandoene

Flere underkommandoer er tilgjengelige å bruke med XGroup -kommandoen. Det er en spesiell underkommando som heter 'hjelp' som viser alle underkommanderne som er tilgjengelige å bruke.

XGroup -hjelp

De hjelp Subcommand returnerer en rekke underkommandoer med beskrivelsene sine.

SKAPE
De SKAPE Subcommand kan brukes til å opprette en ny forbrukergruppe for en gitt strøm. Syntaksen er som følger:

Xgroup create stream_key group_name entry_id | $ [mkstream] [EntriesRead Entries_read]

Dette vil skape en ny forbrukergruppe identifisert av 'Group_name' som er assosiert med de gitte 'stream_key '. De 'Mkstream' Alternativet oppretter en ny strøm med lengden på 0 hvis den spesifiserte strømmen ikke eksisterer i Redis Datastore.

CreateConsumer
Når du trenger å opprette en forbruker for en gitt gruppe, kan CreateConsumer Subcommand brukes. Den aksepterer bare strømnøkkelen, forbrukergruppenavn og et unikt forbrukernavn som argumenter.

Xgroup createconsumer stream_key group_name forbrukernavn

DelConsumer
En opprettet forbruker kan slettes ved hjelp av Delconsumer Subcommand med XGroup -kommandoen. DelConsumer Subcommand Syntax er som følger:

Xgroup delconsumer stream_key group_name forbrukernavn

Legg merke til at før du sletter en forbruker fra forbrukergruppen er å kreve eller anerkjenne alle de verserende meldingene tilknyttet forbrukeren. Denne kommandoen vil returnere antall ventende meldinger tilknyttet den slettede forbrukeren.

ØDELEGGE
Når du trenger å slette en forbrukergruppe med alle forbrukere og verserende meldinger, kan Destroy Subcommand brukes. Så det anbefales å bruke denne kommandoen med omhu.

Xgroup ødelegger stream_key group_name

Denne kommandoen vil returnere et heltall 0 eller 1 som er tellingen for de slettede forbrukergruppene.

Setid
Setid underkommando lar deg endre den sist leverte ID -verdien. Hver gang du trenger å behandle alle oppføringene fra strømmen, bør den sist leverte IDen settes til 0 ved hjelp av Setid Subcommand.

Xgroup setid stream_key group_name Entry_id | $ [EntriesRead Entries_read]

Hvis den siste leverte ID -en er satt riktig, vil kommandoen returnere en enkel streng Ok.

Konklusjon

XGroup Container -kommandoen brukes til å administrere forbrukergruppene tilknyttet en gitt strøm. Det spesielle HJELP Kommando kan brukes til å vise alle tilgjengelige underkommandoer for XGroup -kommandoen. Opprettelse og sletting av forbrukere og forbrukergrupper kan gjøres ved hjelp av de nevnte underkommandoer. I tillegg støtter Setid Subcommand å oppdatere den sist leverte IDen til en gitt forbrukergruppe. Totalt sett varierer XGroup -kommandoproduksjonen med at underkommandoen blir brukt.