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

Implementera grundläggande cachemönster

Lär er att implementera mönstren Cache-Aside och Write-Through med Redis för vanliga applikationsdata.

Lektion 2 av 411 steg

Implementera grundläggande cachemönster ä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.

Introduktion till grundläggande cachemönster

Välkommen! I den här lektionen går vi igenom två grundläggande cachemönster: Cache-Aside och Write-Through. Dessa mönster hjälper dig att integrera Redis i dina applikationer för att lagra och hämta data effektivt.

Att förstå dem är viktigt för att bygga responsiva och skalbara system.

Vad är Cache-Aside?

Mönstret Cache-Aside är ett av de vanligaste sätten att använda en cache. Här ansvarar applikationen för att hantera både cachen och den primära datalagringen (till exempel en databas).

  • Vid läsning av data kontrollerar appen först cachen.
  • Om datan hittas (en ”cache hit”) returneras den cachade datan.
  • Om den inte hittas (en ”cache miss”) hämtar appen datan från databasen, lagrar den i cachen och returnerar den sedan.

Cache-Aside: läsflödet

Föreställ dig att appen behöver användardata. Så här fungerar Cache-Aside:

  1. Appen begär data: Kontrollerar Redis efter user:123.
  2. Cache miss: Redis svarar ”hittades inte”.
  3. Appen frågar databasen: Hämtar user:123 från databasen.
  4. Appen uppdaterar cachen: Lagrar user:123 i Redis.
  5. Appen returnerar data: Tillhandahåller datan till användaren.
  6. Efterföljande förfrågningar: Redis har nu user:123, vilket leder till en snabb ”cache hit”!

CLI-exempel med Cache-Aside

Vi simulerar ett Cache-Aside-läsflöde med Redis CLI. Först försöker vi hämta en nyckel som inte finns i cachen (miss), hämtar den sedan från en tänkt databas och lagrar den. Slutligen hämtar vi den igen (hit).

DEL product:101
GET product:101

# Simulate fetching from DB: "Laptop X"
SET product:101 "Laptop X" EX 3600

GET product:101

Cache-Aside: för- och nackdelar

Fördelar:

  • Enkel att implementera.
  • Läsintensiva arbetsbelastningar: Utmärkt för data som läses ofta men ändras sällan.
  • Dataaktualitet: Nya data läggs bara till i cachen när de efterfrågas, vilket minskar cacheförorening.

Nackdelar:

  • Initial fördröjning: Den första läsningen av data leder alltid till en cachemiss, vilket gör den långsammare.
  • Inaktuella data: Om databasen uppdateras direkt kan cachen innehålla gamla data tills de löper ut eller uttryckligen ogiltigförklaras.

Vad är Write-Through?

Mönstret Write-Through säkerställer att data skrivs till både cachen och den primära datalagringen (databasen) samtidigt. Applikationen skriver till cachen, och cachen ansvarar för att skriva dessa data till databasen.

  • När data skrivs går de först till cachen.
  • Cachen skriver sedan omedelbart data till databasen.
  • Skrivoperationen betraktas som slutförd först när båda operationerna har lyckats.

Write-Through: Skrivflödet

Anta att priset på en produkt ska uppdateras. Så här fungerar Write-Through:

  1. Appen skriver data: Skickar det nya produktpriset för product:202 till Redis.
  2. Cachen skriver till databasen: Redis skriver omedelbart samma uppdatering till databasen.
  3. Cachen bekräftar: Redis bekräftar skrivningen till applikationen först när skrivningen till databasen är klar.
  4. Appen fortsätter: Applikationen fortsätter eftersom både cachen och databasen är konsistenta.

Write-Through: CLI-exempel

Med Write-Through utför applikationen vanligtvis en enda skrivoperation till cachen, och cachen (eller ett klientbibliotek som implementerar mönstret) hanterar lagringen i databasen. Här simulerar vi att ett värde anges, vilket konceptuellt även skulle uppdatera databasen.

SET user:456 '{"name": "Alice", "email": "alice@example.com"}'

# Conceptually, this SET command
# would trigger an update to your
# primary database as well.

GET user:456

Write-Through: Fördelar och nackdelar

Fördelar:

  • Datakonsistens: Cachen och databasen är alltid synkroniserade.
  • Tillförlitlighet: Data sparas omedelbart permanent.
  • Enklare läsningar: Alla läsningar blir cacheträffar (förutsatt att data alltid skrivs via cachen).

Nackdelar:

  • Skrivfördröjning: Skrivningar går långsammare eftersom data måste skrivas två gånger (cache + databas).
  • Cacheförorening: Data som skrivs till cachen kanske aldrig läses, vilket slösar cacheutrymme.
  • Ökad belastning: Varje skrivoperation innebär en skrivning till databasen, vilket kan öka belastningen på databasen.

Frågesport: Jämförelse av mönster

Du utformar en funktion där användarprofiler läses ofta men uppdateras mer sällan. Vilket cachemönster är vanligtvis mest lämpligt för att optimera läsprestandan och förenkla implementeringen?

Sammanfattning: Grundläggande cachemönster

Bra jobbat! Du har lärt dig om två grundläggande cachningsstrategier:

  • Cache-Aside: Applikationen hanterar cachen. Vid läsning kontrolleras cachen först; vid en cachemiss hämtas data från databasen, cachas och returneras sedan. Passar bäst för läsintensiva data.
  • Write-Through: Skrivningar går till cachen, som sedan omedelbart skriver vidare till databasen. Säkerställer stark konsistens mellan cachen och databasen.

Dessa mönster utgör grunden för mer avancerade cachningstekniker som du får utforska i kommande lektioner!

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 ”Implementera grundläggande cachemönster” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Redis: cachelagring och meddelanden (Pub/Sub, Streams), inklusive ”Implementera grundläggande cachemönster”, 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 ”Implementera grundläggande cachemönster”?

Lär er att implementera mönstren Cache-Aside och Write-Through med Redis för vanliga applikationsdata. 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 ”Implementera grundläggande cachemönster”?

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. Varför cache? Introduktion till cachning
  2. Implementera grundläggande cachemönster
  3. Cacherensning och cacheexpirering
  4. Förhindra cache-stampeder och thundering herds
← Tillbaka till Redis: cachelagring och meddelanden (Pub/Sub, Streams)