Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Välimuistin Kanssa Työskentelyn Annotaatiot | Välimuistin Käyttö Redisillä ja Spring Bootilla
Practice
Projects
Quizzes & Challenges
Visat
Challenges
/
Redisin Perusteet

bookVälimuistin Kanssa Työskentelyn Annotaatiot

Pyyhkäise näyttääksesi valikon

Sen sijaan, että käsittelisit välimuistia manuaalisesti, voit käyttää annotaatioita, jotka hallinnoivat prosessia automaattisesti. Tarkastellaan käytettävissä olevia annotaatioita.

Tulosten välimuistiin tallentaminen

@Cacheable annotaatio lisätään metodeihin, joiden tulokset tulee tallentaa välimuistiin. Kun metodia kutsutaan uudelleen samoilla parametreilla, tulos haetaan välimuistista.

@Cacheable(value = "usersCache", key = "#userId")
public User getUserById(String userId) {
    return userRepository.findById(userId);
}

Tässä esimerkissä getUserById metodi tallentaa käyttäjäkyselyn tuloksen heidän ID:nsä perusteella välimuistiin nimeltä "usersCache". Jos metodia kutsutaan uudelleen samalla userId:llä, data haetaan välimuistista sen sijaan, että suoritettaisiin kysely tietokantaan.

Välimuistin päivittäminen

@CachePut annotaatio päivittää välimuistin aina, kun metodi suoritetaan, riippumatta siitä, oliko tulos välimuistissa aiemmin.

@CachePut(value = "usersCache", key = "#user.id")
public User updateUser(User user) {
    return userRepository.save(user);
}

@CachePut -annotaatiota käytetään välimuistin päivittämiseen aina, kun updateUser metodia kutsutaan. Tämä on hyödyllistä, kun data muuttuu ja välimuisti täytyy synkronoida tietokannan muutosten kanssa. Välimuisti päivitetään avaimella, joka vastaa käyttäjän ID:tä.

Välimuistin tyhjentäminen

@CacheEvict -annotaatiota käytetään datan poistamiseen välimuistista, esimerkiksi kun käyttäjä poistetaan tietokannasta.

@CacheEvict(value = "usersCache", key = "#userId")
public void deleteUser(String userId) {
    userRepository.deleteById(userId);
}

Tässä esimerkissä deleteUser metodi poistaa välimuistista merkinnän, jonka avain on yhtä kuin userId.

Yhdistetyt välimuistioperaatiot

@Caching annotaatio mahdollistaa useiden välimuistioperaatioiden suorittamisen yhdessä metodissa, yhdistäen @CachePut ja @CacheEvict.

@Caching(
    put = { @CachePut(value = "usersCache", key = "#user.id") },
    evict = { @CacheEvict(value = "usersCache", key = "#user.id") }
)
public User updateUser(User user) {
    return userRepository.save(user);
}

Tässä esimerkissä updateUser-metodi päivittää samanaikaisesti välimuistin käyttäjän uudella tilalla käyttäen @CachePut-annotaatiota ja poistaa vanhan merkinnän välimuistista käyttäen @CacheEvict-annotaatiota. Tämä on hyödyllistä, kun täytyy suorittaa useita välimuistioperaatioita samanaikaisesti.

1. Milloin käytetään @CacheEvict-annotaatiota?

2. Mikä on @CachePut-annotaation tarkoitus?

question mark

Milloin käytetään @CacheEvict-annotaatiota?

Select the correct answer

question mark

Mikä on @CachePut-annotaation tarkoitus?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 5. Luku 3
some-alt