Mekanikken i Redis Pub/Sub
Lær hvordan Redis implementerer Pub/Sub, inkludert kanaler, utgivere og abonnenter.
Mekanikken i Redis Pub/Sub er en gratis leksjon i Redis-bufring og meldinger (Pub/Sub, Streams) på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Redis-bufring og meldinger (Pub/Sub, Streams), og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Redis-bufring og meldinger (Pub/Sub, Streams) inneholder totalt 4 leksjoner.
Redis Pub/Sub i detalj
Velkommen tilbake! I forrige leksjon lærte vi hva Redis Pub/Sub er. Nå skal vi se nærmere på mekanismene som gjør at det faktisk fungerer i Redis.
Vi skal utforske hovedkomponentene: kanaler, utgivere og abonnenter. Det er viktig å forstå disse rollene for å kunne bygge sanntidsfunksjonalitet.
Kanaler: meldingenes motorveier
Selve kjernen i Redis Pub/Sub er kanaler. Tenk på en kanal som et navngitt tema eller en radiostasjon som kringkaster.
- Navngitte forbindelser: Kanaler er ganske enkelt navn (strenger) som meldinger sendes til og mottas fra.
- Ingen lagring: Redis-kanaler lagrer ikke meldinger. De brukes utelukkende til ruting av meldinger i sanntid.
- Dynamisk opprettelse: Kanaler opprettes implisitt når den første klienten publiserer til eller abonnerer på dem.
Utgivere: sende meldinger
En utgiver er enhver klient som sender en melding til en bestemt kanal. Utgivere trenger ikke å vite hvem som lytter, om noen i det hele tatt lytter.
- Send og glem: Utgivere sender en melding og går umiddelbart videre. De venter ikke på bekreftelser.
- Frakoblet: Utgivere er fullstendig frakoblet fra abonnentene. De trenger bare kanalnavnet og innholdet i meldingen.
Denne frakoblingen er en stor fordel for skalerbare sanntidsapplikasjoner.
Abonnenter: motta meldinger
En abonnent er en klient som uttrykker interesse for å motta meldinger fra én eller flere bestemte kanaler.
- Aktiv lytting: Abonnenter lytter aktivt til kanaler. Når en melding publiseres til en kanal de abonnerer på, sender Redis den til abonnenten.
- Logikk på klientsiden: Abonnenter har vanligvis applikasjonslogikk som behandler innkommende meldinger.
Abonnenter må være koblet til Redis for å motta meldinger. Hvis en abonnent kobler fra, går den glipp av alle meldinger som publiseres mens den er frakoblet.
Meldingsflyten
La oss se for oss den enkle flyten:
- En utgiver sender en melding til en navngitt kanal.
- Redis mottar meldingen og identifiserer kanalen.
- Redis kringkaster deretter meldingen til alle abonnenter som for øyeblikket er koblet til den aktuelle kanalen.
- Abonnentene mottar meldingen i sanntid.
Det er som en radiostasjon (kanal) som kringkaster til mange lyttere (abonnenter) samtidig.
Publisering via CLI
For å publisere en melding bruker vi kommandoen PUBLISH. Den tar to argumenter: kanalnavnet og innholdet i meldingen.
Prøv å kjøre denne kommandoen i Redis CLI. Den returnerer antallet klienter som mottok meldingen.
redis-cli PUBLISH notifications "New user signed up!"Abonnering via CLI
For å abonnere på en kanal bruker vi kommandoen SUBSCRIBE. Den tar ett eller flere kanalnavn.
Når De kjører denne kommandoen, går CLI inn i en blokkerende modus og venter på meldinger på kanalen notifications. De ser ingen ledetekst før De stopper den (for eksempel med Ctrl+C).
redis-cli SUBSCRIBE notificationsViktige egenskaper ved Pub/Sub
Det er avgjørende å forstå disse egenskapene når De skal velge riktig Redis-funksjon:
- Sanntid: Meldinger leveres umiddelbart til aktive abonnenter.
- Send og glem: Utgivere vet ikke og bryr seg ikke om meldingene blir mottatt.
- Ingen varig lagring: Hvis ingen abonnerer, går meldingen tapt. Redis Pub/Sub lagrer ikke meldinger for senere henting.
- Meldingsrekkefølge: Meldinger som publiseres til en kanal, leveres til abonnentene i samme rekkefølge som de ble publisert.
Pub/Sub kontra Redis Streams
De lurer kanskje på hvordan Pub/Sub skiller seg fra andre meldingsmønstre. Den viktigste forskjellen er varig lagring.
- Pub/Sub: Ideelt for sanntidsvarsler der det er akseptabelt at frakoblede abonnenter går glipp av meldinger (for eksempel chatterom og direkteoppdateringer).
- Redis Streams: Tilbyr varig lagring av meldinger, forbrukergrupper og mulighet for avspilling. Det egner seg bedre for pålitelige køer, hendelsesbasert lagring eller situasjoner der meldinger ikke må gå tapt.
Vi tar for oss Streams i et senere kurs!
Kort kontroll
Hvilket av følgende utsagn beskriver en Redis Pub/Sub-kanal korrekt?
Oppsummering: Pub/Sub-mekanismer
I denne leksjonen har vi gått gjennom de viktigste mekanismene i Redis Pub/Sub:
- Kanaler er de navngitte banene for meldinger.
- Utgivere sender meldinger til kanaler på en «send og glem»-måte.
- Abonnenter lytter til kanaler og mottar meldinger i sanntid.
- Redis Pub/Sub har ikke varig lagring; meldinger går tapt hvis ingen abonnent er aktiv.
Deretter skal vi bruke dette i praksis ved å kringkaste enkle meldinger ved hjelp av klientbiblioteker!
Lær deg Redis-bufring og meldinger (Pub/Sub, Streams) med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Mekanikken i Redis Pub/Sub» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Redis-bufring og meldinger (Pub/Sub, Streams), inkludert «Mekanikken i Redis Pub/Sub», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Redis-bufring og meldinger (Pub/Sub, Streams) inneholder totalt 4 leksjoner.
Hva lærer jeg i «Mekanikken i Redis Pub/Sub»?
Lær hvordan Redis implementerer Pub/Sub, inkludert kanaler, utgivere og abonnenter. Du øver på Redis-bufring og meldinger (Pub/Sub, Streams) med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Redis-bufring og meldinger (Pub/Sub, Streams)?
Ingen tidligere erfaring er nødvendig. Redis-bufring og meldinger (Pub/Sub, Streams) på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Mekanikken i Redis Pub/Sub»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Redis-bufring og meldinger (Pub/Sub, Streams)-leksjonen?
Ja. Alle Redis-bufring og meldinger (Pub/Sub, Streams)-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Introduksjon til Pub/Sub
- Mekanikken i Redis Pub/Sub
- Kringkaste enkle meldinger
- Kanaler kontra keyspace-varslinger