Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät · Oppitunti

Välimuistin TTL ja mitätöinti

Hallin­noikaa vanhenemista ja poistamista.

Oppitunti 4/413 vaihetta

Välimuistin TTL ja mitätöinti on ilmainen Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssilla on yhteensä 4 oppituntia.

Miksi TTL on tärkeä

Välimuistissa olevat tiedot voivat vanhentua. TTL (time-to-live) vanhentaa merkinnät automaattisesti määritetyn ajan kuluttua ja rajoittaa näin tietojen vanhenemista.

Oletus-TTL:n määrittäminen

Käyttäkää TTL:ää kaikkiin välimuisteihin oletusasetuksen kautta.

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

Välimuistikohtainen TTL

Eri tiedot vanhenevat eri tahtiin — antakaa kullekin välimuistille oma TTL-arvonsa.

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

Caffeine-TTL properties-asetuksilla

Määrittäkää paikallisen Caffeine-välimuistin vanheneminen properties-asetuksissa.

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

Eksplisiittinen mitätöinti

TTL käsittelee aikaan perustuvan vanhenemisen, kun taas @CacheEvict käsittelee tapahtumaperusteista mitätöintiä tietojen muuttuessa.

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

Write-through-päivitykset

Yhdistäkää päivitykseen @CachePut, jotta välimuisti sisältää uuden arvon heti eikä vasta vanhenemisen jälkeen.

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

Koko välimuistin tyhjentäminen

Poistakaa joukkopäivityksen jälkeen kaikki merkinnät, jotta tiedot luetaan uudelleen.

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

Poistamiskäytännöt

Kun välimuisti saavuttaa kokorajansa, poistamiskäytäntö päättää, mitä poistetaan. Yleisiä käytäntöjä ovat LRU (viimeksi vähiten käytetty) ja LFU (vähiten käytetty).

Välimuistin koon rajoittaminen

Rajoittakaa muistin käyttöä rajoittamalla merkintöjen määrää Caffeinen maximumSize-asetuksella.

spring.cache.caffeine.spec=maximumSize=10000

Cache stampede

Kun suositun avaimen voimassaolo päättyy, monet pyynnöt epäonnistuvat välimuistissa samanaikaisesti ja osuvat kaikki tietokantaan — tätä kutsutaan stampede-ilmiöksi. Voitte lieventää sitä lyhyillä, porrastetuilla TTL-arvoilla tai ennakoivalla päivityksellä.

Osumaprosentin seuranta

Seuratkaa välimuistin osumaprosenttia (osumat ÷ haut yhteensä). Matala osumaprosentti tarkoittaa, ettei välimuisti auta — tarkistakaa TTL, avaimet ja se, sopiiko välimuisti käyttötapaan.

Pikatesti

Testatkaa, miten hyvin ymmärrätte TTL:n ja mitätöinnin.

Kertaus

Opitte välimuistin vanhenemisen ja mitätöinnin:

  • entryTtl-asetuksen TTL rajoittaa tietojen vanhenemista
  • Välimuistikohtaiset TTL-arvot eri tiedoille
  • @CacheEvict / @CachePut tapahtumaperusteiseen mitätöintiin
  • Poistamiskäytännöt (LRU/LFU), kokorajoitukset ja stampede-ilmiön huomioiminen
Aloita maksutta

Opi Java tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
24
Oppitunnit
93

Usein kysytyt kysymykset

Onko oppitunti ”Välimuistin TTL ja mitätöinti” ilmainen?

Kyllä – oppitunnin ”Välimuistin TTL ja mitätöinti” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssin, päivitä CoddyKit PROhon. Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Välimuistin TTL ja mitätöinti”?

Hallin­noikaa vanhenemista ja poistamista. Harjoittelet Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Välimuistin TTL ja mitätöinti”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunnilla?

Kyllä. Jokainen Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Springin Cache-abstraktio
  2. @Cacheable, @CachePut, @CacheEvict
  3. Redis välimuistipalveluna
  4. Välimuistin TTL ja mitätöinti
← Takaisin: Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät