Redis Pub/Sub-mekanik
Lär er hur Redis implementerar Pub/Sub, inklusive kanaler, publicerare och prenumeranter.
Redis Pub/Sub-mekanik är en gratis lektion i Redis: cachelagring och meddelanden (Pub/Sub, Streams) på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Redis: cachelagring och meddelanden (Pub/Sub, Streams), och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Redis: cachelagring och meddelanden (Pub/Sub, Streams) innehåller totalt 4 lektioner.
Att förstå Redis Pub/Sub
Välkomna tillbaka! I den föregående lektionen lärde vi oss vad Redis Pub/Sub är. Nu ska vi gå igenom mekaniken bakom hur det faktiskt fungerar i Redis.
Vi undersöker huvudkomponenterna: kanaler, publicerare och prenumeranter. Att förstå dessa roller är avgörande när Ni bygger realtidsfunktioner.
Kanaler: meddelandenas motorvägar
I centrum för Redis Pub/Sub finns kanaler. Tänk på en kanal som ett namngivet ämne eller en radiostation som sänder till alla.
- Namngivna förbindelser: Kanaler är helt enkelt namn (strängar) som meddelanden skickas till och tas emot från.
- Ingen lagring: Redis-kanaler lagrar inte själva några meddelanden. De används enbart för dirigering av meddelanden i realtid.
- Dynamiskt skapande: Kanaler skapas implicit när den första klienten publicerar till eller prenumererar på dem.
Publicerare: skicka meddelanden
En publicerare är en klient som skickar ett meddelande till en specifik kanal. Publiceraren behöver inte veta vem som lyssnar, om någon gör det alls.
- Skicka och glöm: Publiceraren skickar ett meddelande och går genast vidare. Den väntar inte på någon bekräftelse.
- Frikopplade: Publicerare är helt frikopplade från prenumeranter. De behöver bara kanalens namn och meddelandets innehåll.
Denna frikoppling är en stor fördel i skalbara realtidsapplikationer.
Prenumeranter: ta emot meddelanden
En prenumerant är en klient som visar intresse för att ta emot meddelanden från en eller flera specifika kanaler.
- Aktivt lyssnande: Prenumeranter lyssnar aktivt på kanaler. När ett meddelande publiceras till en kanal som de prenumererar på skickar Redis det vidare till prenumeranten.
- Logik på klientsidan: Prenumeranter har vanligtvis programlogik som bearbetar inkommande meddelanden.
Prenumeranter måste vara anslutna till Redis för att ta emot meddelanden. Om en prenumerant kopplas från missar den alla meddelanden som publiceras medan den är frånkopplad.
Meddelandeflödet
Låt oss visualisera det enkla flödet:
- En publicerare skickar ett meddelande till en namngiven kanal.
- Redis tar emot meddelandet och identifierar kanalen.
- Redis vidarebefordrar sedan meddelandet till alla för närvarande anslutna prenumeranter för den specifika kanalen.
- Prenumeranterna tar emot meddelandet i realtid.
Det fungerar ungefär som en radiostation (kanal) som sänder till många lyssnare (prenumeranter) samtidigt.
Publicera via CLI
För att publicera ett meddelande använder vi kommandot PUBLISH. Det tar två argument: kanalnamnet och meddelandets innehåll.
Prova att köra kommandot i Redis CLI. Det returnerar antalet klienter som tog emot meddelandet.
redis-cli PUBLISH notifications "New user signed up!"Prenumerera via CLI
För att prenumerera på en kanal använder vi kommandot SUBSCRIBE. Det tar ett eller flera kanalnamn.
När Ni kör kommandot går CLI-gränssnittet in i ett blockerande läge och väntar på meddelanden på kanalen notifications. Ni ser ingen prompt förrän Ni stoppar det, till exempel med Ctrl+C.
redis-cli SUBSCRIBE notificationsViktiga egenskaper hos Pub/Sub
Det är viktigt att förstå dessa egenskaper när Ni väljer rätt Redis-funktion:
- Realtid: Meddelanden levereras omedelbart till aktiva prenumeranter.
- Skicka och glöm: Publicerare vet inte och bryr sig inte om meddelanden tas emot.
- Ingen beständighet: Om ingen prenumererar går meddelandet förlorat. Redis Pub/Sub lagrar inte meddelanden för senare hämtning.
- Meddelandeordning: Meddelanden som publiceras till en kanal levereras till prenumeranterna i den ordning de publicerades.
Pub/Sub jämfört med Redis Streams
Ni kanske undrar hur Pub/Sub skiljer sig från andra meddelandemönster. Den viktigaste skillnaden är beständighet.
- Pub/Sub: Idealiskt för realtidsaviseringar där det är acceptabelt att meddelanden går förlorade för frånkopplade prenumeranter, till exempel chattrum och liveuppdateringar.
- Redis Streams: Erbjuder beständig lagring av meddelanden, konsumentgrupper och möjlighet att spela upp meddelanden igen. Det passar bättre för tillförlitliga köer, event sourcing eller situationer där meddelanden inte får gå förlorade.
Vi går igenom Streams i en senare kurs!
Snabb kontroll
Vilket av följande påståenden beskriver korrekt en Redis Pub/Sub-kanal?
Sammanfattning: Pub/Sub-mekanik
I den här lektionen har vi gått igenom den centrala mekaniken i Redis Pub/Sub:
- Kanaler är de namngivna vägar som meddelanden skickas genom.
- Publicerare skickar meddelanden till kanaler enligt principen skicka och glöm.
- Prenumeranter lyssnar på kanaler och tar emot meddelanden i realtid.
- Redis Pub/Sub är inte beständigt; meddelanden går förlorade om ingen prenumerant är aktiv.
Härnäst omsätter vi detta i praktiken genom att sända enkla meddelanden med klientbibliotek!
Lär dig Redis: cachelagring och meddelanden (Pub/Sub, Streams) med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Redis Pub/Sub-mekanik” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Redis: cachelagring och meddelanden (Pub/Sub, Streams), inklusive ”Redis Pub/Sub-mekanik”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Redis: cachelagring och meddelanden (Pub/Sub, Streams) innehåller totalt 4 lektioner.
Vad lär jag mig i ”Redis Pub/Sub-mekanik”?
Lär er hur Redis implementerar Pub/Sub, inklusive kanaler, publicerare och prenumeranter. Ni övar på Redis: cachelagring och meddelanden (Pub/Sub, Streams) med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Redis: cachelagring och meddelanden (Pub/Sub, Streams)?
Du behöver inga förkunskaper. Utbildningen i Redis: cachelagring och meddelanden (Pub/Sub, Streams) på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Redis Pub/Sub-mekanik”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Redis: cachelagring och meddelanden (Pub/Sub, Streams)-lektionen?
Ja. Varje Redis: cachelagring och meddelanden (Pub/Sub, Streams)-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Introduktion till Pub/Sub
- Redis Pub/Sub-mekanik
- Skicka enkla broadcast-meddelanden
- Kanaler jämfört med keyspace-notifieringar