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
Redisin Perusteet

bookVälimuistin Kanssa Työskentelyn Annotaatiot

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

Tulosten välimuistitus

@Cacheable annotaatio lisätään metodeihin, joiden tulokset tulee välimuistittaa. 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 välimuistiin käyttäjäkyselyn tuloksen käyttäjän ID:n 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 jo välimuistissa.

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

@CachePut -annotaatiota käytetään päivittämään välimuisti 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 poistamaan dataa 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älimuistitoiminnot

@Caching-annotaatio mahdollistaa useiden välimuistitoimintojen 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

Awesome!

Completion rate improved to 3.33

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älimuistitus

@Cacheable annotaatio lisätään metodeihin, joiden tulokset tulee välimuistittaa. 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 välimuistiin käyttäjäkyselyn tuloksen käyttäjän ID:n 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 jo välimuistissa.

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

@CachePut -annotaatiota käytetään päivittämään välimuisti 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 poistamaan dataa 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älimuistitoiminnot

@Caching-annotaatio mahdollistaa useiden välimuistitoimintojen 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
some-alt