Flask Academy · Lektion

Invalidér og udløb cache entries

Ryd forældede data, og angiv timeouts.

Lektion 4 af 413 trin

Invalidér og udløb cache entries er en gratis Flask Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Flask Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Flask Academy-kurset indeholder 4 lektioner i alt.

Den sværeste del

Caching er nemt, indtil data ændrer sig. Invalidation betyder at fjerne forældede poster, så brugerne aldrig ser forældet indhold.

Tidsbaseret udløb

Det enkleste værktøj er en timeout. Når det angivne antal sekunder er gået, udløber posten af sig selv, og det næste kald fylder den op igen.

@cache.cached(timeout=30)

Vælg en fornuftig TTL

Din TTL er en afvejning mellem aktualitet og hastighed. En kort TTL betyder flere genberegninger, mens en lang TTL risikerer at levere ældre data i længere tid.

Slet én nøgle

Når data ændrer sig, skal du ikke vente på udløbet. Kald cache.delete med nøglen for straks at fjerne den ene post.

cache.delete("user_42")

Ryd alt

Den mest drastiske mulighed er cache.clear, som sletter alle poster. Brug den sparsomt, da den tvinger en fuld genopbygning fra bunden.

cache.clear()

Fjern et memoized resultat

For memoized hjælpefunktioner skal du bruge delete_memoized til at fjerne et cachet funktionsresultat, så snart kildedataene opdateres.

cache.delete_memoized(get_profile, user_id)

Invalidér ved skrivning

Et rent mønster er at delete den matchende cache-nøgle lige efter, at du har gemt en ændring, så den næste læsning bygger den op igen med friske data.

db.session.commit()
cache.delete(key)

Angivet timeout kontra standard-timeout

Du kan tilsidesætte udløbet for hver post med set og en timeout, så den globale standard ignoreres for netop denne værdi.

cache.set("k", v, timeout=10)

Poster, der aldrig udløber

Hvis du sender timeout=0, gemmes en værdi, der aldrig udløber af sig selv. Derefter er det dit ansvar at slette den.

cache.set("flag", True, timeout=0)

Versionsbaserede nøgler

Et smart trick er at indsætte en version i nøglen. Forøg versionen, så ignoreres alle gamle poster uden at noget skal slettes.

key = f"posts_v{VERSION}"

Forældede data er en fejl

Behandl visning af forældet indhold som en reel fejl. Hver skrivevej bør have et tilsvarende planlagt trin til invalidation.

Hurtigt tjek

En bruger opdaterer sin profil, men siden viser stadig det gamle navn.

Opsummering: Invalidation

Du kan lade poster udløbe via timeout, slette enkelte nøgler, rydde alt, fjerne memoized resultater og invalidere ved skrivning. Brug caching med omtanke! 🧠

Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Invalidér og udløb cache entries” gratis?

Ja — hele teksten til “Invalidér og udløb cache entries” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Flask Academy-kurset, skal du opgradere til CoddyKit PRO. Flask Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Invalidér og udløb cache entries”?

Ryd forældede data, og angiv timeouts. Du øver dig i Flask Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Flask Academy?

Der kræves ingen tidligere erfaring. Flask Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Invalidér og udløb cache entries”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Flask Academy-lektion?

Ja. Alle Flask Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Opsæt Flask-Caching
  2. Cach et view med cached
  3. Memoizér dyre funktioner
  4. Invalidér og udløb cache entries
← Tilbage til Flask Academy