Redis-caching en berichtenuitwisseling (Pub/Sub, Streams) · Les

Basiscachepatronen implementeren

Leer de patronen Cache-Aside en Write-Through met Redis te implementeren voor veelgebruikte applicatiegegevens.

Les 2 van 411 stappen

Basiscachepatronen implementeren is een gratis Redis-caching en berichtenuitwisseling (Pub/Sub, Streams)-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Redis-caching en berichtenuitwisseling (Pub/Sub, Streams). Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Redis-caching en berichtenuitwisseling (Pub/Sub, Streams) bevat in totaal 4 lessen.

Inleiding tot basiscachingpatronen

Welkom! In deze les behandelen we twee fundamentele cachingpatronen: Cache-Aside en Write-Through. Met deze patronen kun je Redis in je applicaties integreren om gegevens efficiënt op te slaan en op te halen.

Als je deze patronen begrijpt, kun je responsieve en schaalbare systemen bouwen.

Wat is Cache-Aside?

Het patroon Cache-Aside is een van de meest gebruikte manieren om een cache toe te passen. Hierbij is je applicatie verantwoordelijk voor het beheer van zowel de cache als de primaire gegevensopslag (zoals een database).

  • Bij het lezen van gegevens controleert de app eerst de cache.
  • Als de gegevens worden gevonden (een 'cachetreffer'), retourneert de app de gecachte gegevens.
  • Als de gegevens niet worden gevonden (een 'cachemisser'), haalt de app ze uit de database, slaat ze op in de cache en retourneert ze vervolgens.

Cache-Aside: de leesstroom

Stel dat je app gebruikersgegevens nodig heeft. Zo werkt Cache-Aside:

  1. App vraagt gegevens op: Controleert Redis op user:123.
  2. Cachemisser: Redis antwoordt met 'niet gevonden'.
  3. App bevraagt database: Haalt user:123 uit de database.
  4. App werkt cache bij: Slaat user:123 op in Redis.
  5. App retourneert gegevens: Geeft de gegevens aan de gebruiker.
  6. Volgende aanvragen: Redis bevat nu user:123, wat leidt tot een snelle 'cachetreffer'!

Cache-Aside: CLI-voorbeeld

Laten we een Cache-Aside-leesstroom simuleren met Redis CLI. Eerst proberen we een sleutel op te halen die niet in de cache staat (misser). Daarna halen we de sleutel op uit een conceptuele database en slaan we hem op. Tot slot halen we de sleutel opnieuw op (treffer).

DEL product:101
GET product:101

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

GET product:101

Cache-Aside: voor- en nadelen

Voordelen:

  • Eenvoud: Eenvoudig te implementeren.
  • Leesintensieve werklasten: Uitstekend voor gegevens die vaak worden gelezen maar zelden veranderen.
  • Actualiteit van gegevens: Nieuwe gegevens worden alleen aan de cache toegevoegd wanneer ze worden opgevraagd, waardoor cachevervuiling afneemt.

Nadelen:

  • Initiële latentie: De eerste leesbewerking voor bepaalde gegevens resulteert altijd in een cachemiss, waardoor deze trager is.
  • Verouderde gegevens: Als de database rechtstreeks wordt bijgewerkt, kan de cache oude gegevens bevatten totdat deze verlopen of expliciet ongeldig worden gemaakt.

Wat is write-through?

Het write-throughpatroon zorgt ervoor dat gegevens tegelijkertijd naar zowel de cache als de primaire gegevensopslag (database) worden geschreven. De applicatie schrijft naar de cache en de cache is verantwoordelijk voor het schrijven van die gegevens naar de database.

  • Wanneer gegevens worden geschreven, gaan ze eerst naar de cache.
  • De cache schrijft de gegevens vervolgens onmiddellijk naar de database.
  • De schrijfbewerking wordt pas als voltooid beschouwd nadat beide bewerkingen zijn geslaagd.

Write-through: de schrijfstroom

Stel dat je de prijs van een product bijwerkt. Zo werkt write-through:

  1. De app schrijft gegevens: Stuurt de nieuwe productprijs voor product:202 naar Redis.
  2. De cache schrijft naar de database: Redis schrijft dezelfde update onmiddellijk naar de database.
  3. De cache bevestigt: Redis bevestigt de schrijfbewerking aan de applicatie pas nadat het schrijven naar de database is voltooid.
  4. De app gaat verder: De applicatie gaat verder en weet dat de cache en de database consistent zijn.

CLI-voorbeeld van write-through

Bij write-through voert je applicatie doorgaans één schrijfbewerking naar de cache uit. De cache (of een clientbibliotheek die het patroon implementeert) zorgt vervolgens voor de opslag in de database. Hier simuleren we het instellen van een waarde die conceptueel ook de database zou bijwerken.

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: voor- en nadelen

Voordelen:

  • Consistentie van gegevens: De cache en de database lopen altijd gelijk.
  • Betrouwbaarheid: Gegevens worden onmiddellijk blijvend opgeslagen.
  • Eenvoudiger lezen: Alle leesbewerkingen zijn cachehits (ervan uitgaande dat gegevens altijd via write-through worden geschreven).

Nadelen:

  • Schrijflatentie: Schrijfbewerkingen zijn trager omdat gegevens twee keer moeten worden geschreven (cache + database).
  • Cachevervuiling: Gegevens die naar de cache worden geschreven, worden mogelijk nooit gelezen, waardoor cacheruimte verloren gaat.
  • Hogere belasting: Elke schrijfbewerking veroorzaakt een schrijfbewerking in de database, waardoor de database mogelijk zwaarder wordt belast.

Quiz over patroonvergelijking

Je ontwerpt een functie waarbij gebruikersprofielen vaak worden gelezen maar minder vaak worden bijgewerkt. Welk cachepatroon is doorgaans geschikter om de leesprestaties te optimaliseren en de implementatie eenvoudiger te maken?

Samenvatting: basiscachepatronen

Goed gedaan! Je hebt twee fundamentele cachestrategieën geleerd:

  • Cache-aside: Je applicatie beheert de cache. Bij het lezen wordt eerst de cache gecontroleerd; bij een cachemiss worden de gegevens uit de database opgehaald, in de cache opgeslagen en vervolgens teruggegeven. Het meest geschikt voor leesintensieve gegevens.
  • Write-through: Schrijfbewerkingen gaan naar de cache, die de gegevens vervolgens onmiddellijk naar de database schrijft. Dit zorgt voor sterke consistentie tussen de cache en de database.

Deze patronen vormen de basis voor geavanceerdere cachestrategieën die je in toekomstige lessen gaat verkennen!

Gratis beginnen

Leer Redis-caching en berichtenuitwisseling (Pub/Sub, Streams) met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “Basiscachepatronen implementeren” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Redis-caching en berichtenuitwisseling (Pub/Sub, Streams), waaronder “Basiscachepatronen implementeren”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Redis-caching en berichtenuitwisseling (Pub/Sub, Streams) bevat in totaal 4 lessen.

Wat leer ik in “Basiscachepatronen implementeren”?

Leer de patronen Cache-Aside en Write-Through met Redis te implementeren voor veelgebruikte applicatiegegevens. Je oefent met Redis-caching en berichtenuitwisseling (Pub/Sub, Streams) door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Redis-caching en berichtenuitwisseling (Pub/Sub, Streams) te beginnen?

Ervaring vooraf is niet nodig. Redis-caching en berichtenuitwisseling (Pub/Sub, Streams) op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Basiscachepatronen implementeren”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Redis-caching en berichtenuitwisseling (Pub/Sub, Streams)?

Ja. Elke les over Redis-caching en berichtenuitwisseling (Pub/Sub, Streams) bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Waarom cachen? Kennismaking met caching
  2. Basiscachepatronen implementeren
  3. Cache-evictie en -expiratie
  4. Cache stampedes en thundering herds voorkomen
← Terug naar Redis-caching en berichtenuitwisseling (Pub/Sub, Streams)