Vä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?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.33
Vä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?
Kiitos palautteestasi!