Spring Boot 4-mikrotjenester og REST-API'er · Lektion

Cache-TTL og ugyldiggørelse

Håndtér udløb og fjernelse fra cachen.

Lektion 4 af 413 trin

Cache-TTL og ugyldiggørelse er en gratis Spring Boot 4-mikrotjenester og REST-API'er-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 Spring Boot 4-mikrotjenester og REST-API'er, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Spring Boot 4-mikrotjenester og REST-API'er-kurset indeholder 4 lektioner i alt.

Hvorfor TTL er vigtigt

Cachelagrede data kan blive forældede. En TTL (levetid) udløber automatisk for poster efter et angivet tidsrum, så det begrænses, hvor forældede data kan blive.

Angivelse af en standard-TTL

Anvend en TTL på alle cacher via standardkonfigurationen.

RedisCacheConfiguration config =
    RedisCacheConfiguration.defaultCacheConfig()
        .entryTtl(Duration.ofMinutes(10));

TTL pr. cache

Forskellige data ældes med forskellig hastighed — giv hver cache sin egen TTL.

Map<String, RedisCacheConfiguration> configs = Map.of(
    "products",
        RedisCacheConfiguration.defaultCacheConfig()
            .entryTtl(Duration.ofHours(1)),
    "prices",
        RedisCacheConfiguration.defaultCacheConfig()
            .entryTtl(Duration.ofMinutes(1)));

Caffeine-TTL via egenskaber

For en lokal Caffeine-cache skal du angive udløbstiden i egenskaberne.

spring.cache.caffeine.spec=expireAfterWrite=300s,maximumSize=1000

Eksplicit ugyldiggørelse

TTL håndterer tidsbaseret udløb; @CacheEvict håndterer hændelsesbaseret ugyldiggørelse, når data ændres.

@CacheEvict(value = "products", key = "#id")
public void delete(Long id) {
    repository.deleteById(id);
}

Write-through-opdateringer

Kombinér en opdatering med @CachePut, så cachen afspejler den nye værdi med det samme i stedet for at vente på udløb.

@CachePut(value = "products", key = "#product.id")
public Product update(Product product) {
    return repository.save(product);
}

Rydning af en hel cache

Efter en masseændring skal du udelukke alle poster for at tvinge nye læsninger frem.

@CacheEvict(value = "products", allEntries = true)
public void importBatch(List<Product> items) {
    repository.saveAll(items);
}

Udelukkelsespolitikker

Når en cache når sin størrelsesgrænse, afgør en udelukkelsespolitik, hvad der skal fjernes. Almindelige politikker er LRU (mindst nyligt anvendt) og LFU (mindst hyppigt anvendt).

Begrænsning af cachestørrelsen

Begræns hukommelsesforbruget ved at sætte et loft over antallet af poster med Caffeines maximumSize.

spring.cache.caffeine.spec=maximumSize=10000

Cache-stormløb

Når en populær nøgle udløber, misser mange forespørgsler samtidig og rammer alle databasen — et stormløb. Afhjælp det med korte, forskudte TTL'er eller strategier til forudgående opdatering.

Overvågning af hitrate

Følg cachens hitrate (hits ÷ opslag i alt). En lav hitrate betyder, at cachen ikke hjælper — genovervej TTL, nøgler eller om caching passer til adgangsmønstret.

Hurtigt tjek

Test din forståelse af TTL og ugyldiggørelse.

Opsummering

Du har lært om cacheudløb og ugyldiggørelse:

  • TTL via entryTtl begrænser forældelse
  • TTL pr. cache til forskellige data
  • @CacheEvict / @CachePut til hændelsesbaseret ugyldiggørelse
  • Udelukkelsespolitikker (LRU/LFU), størrelsesgrænser og opmærksomhed på stormløb
Gratis at komme i gang

Lær Java 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
24
Lektioner
93

Ofte stillede spørgsmål

Er lektionen “Cache-TTL og ugyldiggørelse” gratis?

Ja — hele teksten til “Cache-TTL og ugyldiggørelse” 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 Spring Boot 4-mikrotjenester og REST-API'er-kurset, skal du opgradere til CoddyKit PRO. Spring Boot 4-mikrotjenester og REST-API'er-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Cache-TTL og ugyldiggørelse”?

Håndtér udløb og fjernelse fra cachen. Du øver dig i Spring Boot 4-mikrotjenester og REST-API'er 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å Spring Boot 4-mikrotjenester og REST-API'er?

Der kræves ingen tidligere erfaring. Spring Boot 4-mikrotjenester og REST-API'er 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 “Cache-TTL og ugyldiggørelse”?

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 Spring Boot 4-mikrotjenester og REST-API'er-lektion?

Ja. Alle Spring Boot 4-mikrotjenester og REST-API'er-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. Spring Cache-abstraktionen
  2. @Cacheable, @CachePut, @CacheEvict
  3. Redis som cacheudbyder
  4. Cache-TTL og ugyldiggørelse
← Tilbage til Spring Boot 4-mikrotjenester og REST-API'er