Redis: cachelagring och meddelanden (Pub/Sub, Streams) · Lektion

Beständighet för meddelanden i strömmar

Utforska hur Streams tillhandahåller beständiga meddelanden och leverans i ordning, till skillnad från Pub/Sub.

Lektion 3 av 411 steg

Beständighet för meddelanden i strömmar är en gratis lektion i Redis: cachelagring och meddelanden (Pub/Sub, Streams) på CoddyKit. Detta är lektion 3 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.

Vad innebär meddelandepersistens?

I meddelandesystem innebär persistens att meddelanden inte går förlorade, även om mottagaren inte är redo att ta emot dem direkt.

Tänk på det som att lämna en lapp på kylskåpet i stället för att ropa till någon som kanske inte är hemma. Lappen finns kvar tills den läses.

Detta är avgörande för tillförlitligheten i många applikationer.

Streams bevarar era data

Till skillnad från vissa andra meddelandefunktioner i Redis är Redis Streams utformade för att vara beständiga. Varje meddelande (post) som ni lägger till i en stream lagras i Redis.

Denna lagring fungerar som en append-only-logg. Nya poster läggs alltid till sist, vilket skapar en historisk redovisning av händelser.

Unika post-ID:n för ordning

Varje post i en Redis Stream får ett unikt post-ID. ID:t genereras automatiskt av Redis och består av två delar:

  • Tidsstämpel (millisekunder): Tiden då posten lades till.
  • Sekvensnummer: En räknare för poster som läggs till inom samma millisekund.

Exempel: 1678886400000-0

Lägga till meddelanden i en stream

Vi använder kommandot XADD för att lägga till nya poster i en stream. * instruerar Redis att generera post-ID:t automatiskt, vilket säkerställer unikhet och korrekt ordning.

Varje post innehåller även fält-värde-par, ungefär som en liten hash.

XADD mystream * sensor-id 123 temperature 25.5

Läsa från en stream

För att läsa poster från en stream använder vi kommandot XREAD. Ni anger streamens namn och det ID där läsningen ska börja.

Det viktiga är att läsning av en post inte tar bort den från streamen. Den finns kvar för andra konsumenter eller för framtida granskning.

XREAD COUNT 2 STREAMS mystream 0

Streams jämfört med Pub/Sub: persistens

Det är här Redis Streams skiljer sig tydligt från Redis Pub/Sub (Publish/Subscribe).

  • Streams: Meddelanden är beständiga. De lagras och kan läsas flera gånger, även av konsumenter som ansluter senare.
  • Pub/Sub: Meddelanden är kortlivade. De levereras en gång till aktiva prenumeranter och försvinner sedan.

Pub/Sub: skicka och glöm

Med Pub/Sub går ett meddelande förlorat om ingen klient prenumererar på en kanal när meddelandet publiceras. Det finns ingen kö eller historik.

Det är som en direktsändning: om ni inte är inställda missar ni den. Det passar utmärkt för realtidsnotiser där historik inte behövs.

Streams säkerställer ordning

De automatiskt genererade post-ID:na i Redis Streams garanterar strikt kronologisk ordning. Meddelanden lagras och hämtas alltid i exakt den ordning de lades till.

Detta är viktigt för applikationer där händelsernas ordningsföljd spelar roll, till exempel loggning, granskning eller event sourcing.

När ska ni använda beständiga streams?

Välj Redis Streams när ni behöver:

  • Tillförlitliga händelseloggar: En fullständig och ordnad historik över händelser.
  • Återuppspelning av meddelanden: Möjlighet för nya konsumenter att bearbeta tidigare händelser.
  • Granskning och analys: Historiska data för analys.
  • Frikopplade mikrotjänster: Tjänster kan bearbeta händelser i sin egen takt.

Kontroll av stream-persistens

Ni bygger en applikation som måste säkerställa att varje händelse bearbetas, även om en konsument tillfälligt är offline. Vilken Redis-funktion passar bäst för detta krav?

Sammanfattning: Streams viktigaste styrkor

I den här lektionen undersökte vi Redis Streams viktigaste egenskaper: meddelandepersistens och garanterad ordnad leverans.

  • Streams lagrar alla poster och bildar en oföränderlig logg.
  • Varje post har ett unikt, tidsbaserat ID som säkerställer strikt ordning.
  • Denna persistens och ordning skiljer Streams från Redis Pub/Sub och gör Streams idealiska för tillförlitlig händelsebearbetning och historiska data.
Gratis att börja

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 ”Beständighet för meddelanden i strömmar” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Redis: cachelagring och meddelanden (Pub/Sub, Streams), inklusive ”Beständighet för meddelanden i strömmar”, 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 ”Beständighet för meddelanden i strömmar”?

Utforska hur Streams tillhandahåller beständiga meddelanden och leverans i ordning, till skillnad från Pub/Sub. 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 3 av 4.

Hur lång tid tar lektionen ”Beständighet för meddelanden i strömmar”?

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

  1. Vad är Redis Streams?
  2. Datastrukturer och kommandon för strömmar
  3. Beständighet för meddelanden i strömmar
  4. Begränsa och trimma strömmar
← Tillbaka till Redis: cachelagring och meddelanden (Pub/Sub, Streams)