Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Annotasjoner for Arbeid med Cache | Mellomlagring med Redis og Spring Boot
Introduksjon til Redis

bookAnnotasjoner for Arbeid med Cache

I stedet for å håndtere caching manuelt, kan du bruke annotasjoner som automatisk styrer prosessen. La oss se på hvilke annotasjoner som er tilgjengelige.

Caching av resultater

@Cacheable-annotasjonen brukes på metoder der resultatene skal caches. Når metoden kalles igjen med de samme parameterne, hentes resultatet fra cachen.

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

I dette eksemplet mellomlagrer getUserById-metoden resultatet av et brukersøk etter deres ID i en cache kalt "usersCache". Hvis metoden kalles igjen med samme userId, hentes dataene fra cachen i stedet for å utføre spørringen mot databasen.

Oppdatering av cache

@CachePut-annotasjonen oppdaterer cachen hver gang metoden kjøres, uavhengig av om resultatet tidligere har blitt mellomlagret.

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

Annotasjonen @CachePut brukes til å oppdatere cachen hver gang updateUser-metoden kalles. Dette er nyttig når data endres og det er behov for å synkronisere cachen med endringene i databasen. Cachen oppdateres med nøkkelen som tilsvarer bruker-ID.

Tømming av cache

Annotasjonen @CacheEvict brukes til å fjerne data fra cachen, for eksempel når en bruker slettes fra databasen.

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

I dette eksempelet fjerner deleteUser-metoden oppføringen fra cachen med nøkkelen lik userId.

Kombinerte cache-operasjoner

@Caching-annotasjonen tillater flere cache-operasjoner å utføres innenfor én metode, ved å kombinere @CachePut og @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);
}

I dette eksempelet oppdaterer updateUser-metoden samtidig cachen med ny tilstand for brukeren ved å bruke @CachePut, og fjerner den gamle oppføringen fra cachen ved å bruke @CacheEvict. Dette er nyttig når det er behov for å utføre flere cache-operasjoner på samme tidspunkt.

1. Når bør du bruke @CacheEvict?

2. Hva er formålet med @CachePut-annotasjonen?

question mark

Når bør du bruke @CacheEvict?

Select the correct answer

question mark

Hva er formålet med @CachePut-annotasjonen?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Awesome!

Completion rate improved to 3.33

bookAnnotasjoner for Arbeid med Cache

Sveip for å vise menyen

I stedet for å håndtere caching manuelt, kan du bruke annotasjoner som automatisk styrer prosessen. La oss se på hvilke annotasjoner som er tilgjengelige.

Caching av resultater

@Cacheable-annotasjonen brukes på metoder der resultatene skal caches. Når metoden kalles igjen med de samme parameterne, hentes resultatet fra cachen.

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

I dette eksemplet mellomlagrer getUserById-metoden resultatet av et brukersøk etter deres ID i en cache kalt "usersCache". Hvis metoden kalles igjen med samme userId, hentes dataene fra cachen i stedet for å utføre spørringen mot databasen.

Oppdatering av cache

@CachePut-annotasjonen oppdaterer cachen hver gang metoden kjøres, uavhengig av om resultatet tidligere har blitt mellomlagret.

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

Annotasjonen @CachePut brukes til å oppdatere cachen hver gang updateUser-metoden kalles. Dette er nyttig når data endres og det er behov for å synkronisere cachen med endringene i databasen. Cachen oppdateres med nøkkelen som tilsvarer bruker-ID.

Tømming av cache

Annotasjonen @CacheEvict brukes til å fjerne data fra cachen, for eksempel når en bruker slettes fra databasen.

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

I dette eksempelet fjerner deleteUser-metoden oppføringen fra cachen med nøkkelen lik userId.

Kombinerte cache-operasjoner

@Caching-annotasjonen tillater flere cache-operasjoner å utføres innenfor én metode, ved å kombinere @CachePut og @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);
}

I dette eksempelet oppdaterer updateUser-metoden samtidig cachen med ny tilstand for brukeren ved å bruke @CachePut, og fjerner den gamle oppføringen fra cachen ved å bruke @CacheEvict. Dette er nyttig når det er behov for å utføre flere cache-operasjoner på samme tidspunkt.

1. Når bør du bruke @CacheEvict?

2. Hva er formålet med @CachePut-annotasjonen?

question mark

Når bør du bruke @CacheEvict?

Select the correct answer

question mark

Hva er formålet med @CachePut-annotasjonen?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 3
some-alt