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

Cacherensning och cacheexpirering

Lär er tekniker för att hantera cachestorlek, ange utgångstider (TTL) och hantera cache-invalidering.

Lektion 3 av 411 steg

Cacherensning och cacheexpirering ä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.

Varför cacheförfall är viktigt

Cachning ger hög hastighet, men cachade data kan bli inaktuella, vilket innebär att de inte längre återspeglar den verkliga informationskällan. Dessutom har cacheminnen begränsat minne.

I den här lektionen utforskar du hur dessa problem hanteras med teknikerna förfall och utträngning i Redis.

Introduktion till Time To Live (TTL)

Time To Live (TTL) anger hur länge ett cachat objekt förblir giltigt. När dess TTL löper ut tar Redis automatiskt bort nyckeln.

  • Förhindrar att inaktuella data visas på obestämd tid.
  • Frigör minne för nyare och mer relevanta data.

Ange TTL med EXPIRE

Kommandot EXPIRE anger en förfallotid i sekunder för en befintlig nyckel. När den angivna tiden har gått tas nyckeln automatiskt bort.

Prova att ange en nyckel och sedan ge den en förfallotid på 10 sekunder:

SET myapp:user:1 "John Doe"
EXPIRE myapp:user:1 10
TTL myapp:user:1

SETEX: Ange och låt förfalla samtidigt

I stället för två kommandon (SET och sedan EXPIRE) kan du använda SETEX för att ange en nyckels värde och förfallotid atomiskt (i ett enda steg).

Detta föredras vanligtvis för nya nycklar eftersom det är effektivare.

SETEX myapp:product:5 20 "LaptopX"
TTL myapp:product:5

Kontrollera TTL och beständighet

Du kan kontrollera en nyckels återstående TTL med kommandot TTL. Det returnerar återstående sekunder, eller -2 om nyckeln inte finns och -1 om den finns men saknar förfallotid.

Kommandot PERSIST tar bort förfallotiden från en nyckel, så att den blir permanent igen.

SET temp:token "abc123"
EXPIRE temp:token 5
TTL temp:token
PERSIST temp:token
TTL temp:token

Millisekundprecision med PEXPIRE

För mer exakt kontroll fungerar PEXPIRE och PSETEX på samma sätt som motsvarande sekundbaserade kommandon, men de accepterar förfallotider i millisekunder.

Detta kan vara användbart för cacheminnen med mycket kort livslängd eller särskilda tidskrav.

SET mskey:data "important info"
PEXPIRE mskey:data 5000
PTTL mskey:data

Automatiska utträngningsprinciper

Vad händer när Redis-cachen får slut på minne? Redis kan konfigureras för att automatiskt tränga ut (ta bort) nycklar för att frigöra utrymme.

Detta beteende styrs av inställningen maxmemory och en utträngningsprincip.

Vanliga utträngningsprinciper

Redis erbjuder flera utträngningsprinciper som konfigureras via maxmemory-policy:

  • noeviction: Returnerar fel vid skrivoperationer när minnesgränsen har nåtts.
  • allkeys-lru: Tränger ut de nycklar som användes minst nyligen (LRU) bland alla nycklar.
  • volatile-lru: Tränger ut LRU-nycklar *endast* bland dem som har en uttrycklig TTL.
  • allkeys-random: Tränger ut slumpmässiga nycklar bland alla nycklar.

Manuell ogiltigförklaring av cache

Ibland ändras data oväntat, eller så behöver du säkerställa att en cachepost tas bort omedelbart. I sådana fall kan du manuellt ogiltigförklara en nyckel.

Kommandot DEL tar omedelbart bort en eller flera angivna nycklar från Redis.

SET cache:user:1 "user_data_old"
GET cache:user:1
DEL cache:user:1
GET cache:user:1

Snabbkontroll: Förfallotid

Du har en Redis-nyckel med namnet session:user:123. Du vill att den ska förfalla exakt 30 minuter från och med nu. Vilket kommando åstadkommer detta?

Sammanfattning: Utträngning och förfall

I den här lektionen har du lärt dig viktiga tekniker för att hantera cachade data i Redis:

  • Använda EXPIRE, SETEX och PEXPIRE för att ange tidsbaserade förfallotider.
  • Förstå TTL och PERSIST för att hantera nycklars livslängd.
  • Lära dig om automatiska utträngningsprinciper för att hantera minnesgränser.
  • Implementera manuell ogiltigförklaring av cache med DEL för omedelbara uppdateringar.

Dessa färdigheter är avgörande för att hålla data aktuella och använda minnet effektivt i din Redis-cache!

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 ”Cacherensning och cacheexpirering” gratis?

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

Lär er tekniker för att hantera cachestorlek, ange utgångstider (TTL) och hantera cache-invalidering. 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 ”Cacherensning och cacheexpirering”?

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)