Hvordan bruke Redis pub-sub

Hvordan bruke Redis pub-sub
Publiser-subsikringsmodellen er et paradigme der meldinger kan sendes til et subjektivt antall avsendere. Avsenderne av meldingen, også kjent som abonnenter, sender ikke meldinger direkte til en målmottaker. Imidlertid sender de meldingen til en kanal der mottakerne, også kjent som abonnenter, kan få tilgang til dem.

En enkelt bruker kan abonnere på flere kanaler og se utgivernes meldinger sendt til den kanalen. De kan også melde seg fra kanalen når som helst.

Denne opplæringen vil lære å implementere en enkel publiser-abonnementsmodell ved hjelp av Redis.

Det er bra å merke seg at vi vil bruke Native Redis -kommandoer og ikke en tilpasset kode i Python, Ruby, JavaScript eller andre.

Redis pub-sub-kommandoer.

Når du jobber med Publiser-Subscribe-modellen i Redis, kommer to hovedkommandoer inn i spill:

  1. ABONNERE
  2. PUBLISERE

Disse kommandoene er enkle og beskriver funksjonen de påtar seg. For eksempel brukes abonnementskommandoen til å abonnere på en klient på en bestemt kanal eller kanal.

Publiser -kommandoen lar en avsender eller utgiver sende en melding til et bestemt antall kanaler.

Grunnleggende pub-sub-modell

Denne opplæringen vil implementere en enkel pub-sub-modell for å vise hvordan den fungerer i Redis.

For dette vil du kreve en Redis -klynge i gang på systemet ditt.

Begynn med å åpne tre terminaløkter og starte Redis CLI i hver av dem.

Når du har alle terminalene åpne og satt opp, bruker du en av terminalene for å abonnere på en kanal.

Abonner -kommandoen tar navnet på kanalen som argument. Den generelle syntaksen kan bli representert som:

ABONNERE

Navnet vil helt avhenge av deg, og du kan navngi det hva du vil. I kommandoen nedenfor abonnerer vi for eksempel på en kanal som heter Linuxhint.

127.0.0.1: 6379> Abonner Linuxhint
Lesemeldinger ... (Trykk på CTRL-C for å slutte)
1) "Abonner"
2) "Linuxhint"
3) (Heltall) 1

I eksemplet over abonnerer vi på en kanal som heter Linuxhint, og vi kan begynne å motta eventuelle meldinger som er publisert til den kanalen.

Bruk den til å publisere en melding til Linuxhint -kanalen i den andre terminalen.

Bruk publiser -kommandoen etterfulgt av navnet på kanalen og meldingen som skal publiseres.

For eksempel:

127.0.0.1: 6379> Publiser Linuxhint "Hei, alle sammen!""
(Heltall) 1

Vær oppmerksom på den første terminalen og utfør kommandoen ovenfor. Du vil merke at meldingen automatisk vises på kanalen der brukeren har abonnert.

Et eksempelutgang på abonnentterminalen er som vist:

1) "Melding"
2) "Linuxhint"
3) "Hei, alle sammen!""

Den inneholder typen, i dette tilfellet en melding, kanalen og det faktiske innholdet i meldingen.

Merk: Når du trenger å publisere en melding, kan du legge inn den i anførselstegn, og Redis vil behandle den som en enkelt melding i stedet for kommandoargumenter.

I den tredje terminalen vil vi bruke den til å abonnere på flere kanaler ved å bruke PSUBScribe -kommandoen.

PSUBScribe -kommandoen tar et spesifikt mønster og abonnerer brukeren til disse kanalene.

For å abonnere på alle kanaler som starter med karakterene Linux, kan vi for eksempel sette kommandoen som:

127.0.0.1: 6379> PsubScribe Linux*
Lesemeldinger ... (Trykk på CTRL-C for å slutte)
1) "Psubscribe"
2) "Linux*"
3) (Heltall) 1

Når vi kjører kommandoen over, hvis vi publiserer en melding til en kanal med navnet Linux, vil abonnenten (i terminal 3) motta meldingen.

I den andre terminalen, utfør for eksempel følgende kommandoer:

127.0.0.1: 6379> Publiser Linuxuser "for Linuxuser -kanaler"
127.0.0.1: 6379> Publiser Linuxhint "for Linuxhint -kanaler"
127.0.0.1: 6379> Publiser LinuxCommander "for LinuxCommander -kanaler"

Nå vær oppmerksom på den tredje terminalen med mønsteret abonnerer. Du vil merke at abonnenten i den terminalen mottar alle tre meldingene, mens den i terminal 1 bare mottar meldingen som er sendt til "Linuxhint" -kanalen.

Som du kan se, abonnerer Psubcribe -kommandoen på kanaler som samsvarer med et spesifikt mønster.

Lukking

Denne guiden så på det grunnleggende om å bruke Redis Publiser-Subscribe-modellen. Selv om guiden bare dekker det grunnleggende, kan du utvide den for å lage tilpassede sanntidsapplikasjoner.