Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Annotationer til Arbejde med Cache | Caching Med Redis Og Spring Boot
Practice
Projects
Quizzes & Challenges
Quizzer
Challenges
/
Introduktion til Redis

bookAnnotationer til Arbejde med Cache

Stryg for at vise menuen

I stedet for manuelt at håndtere caching, kan du bruge annotationer, der automatisk styrer processen. Lad os se på de tilgængelige annotationer.

Caching af resultater

@Cacheable annotationen anvendes på metoder, hvis resultater skal caches. Når metoden kaldes igen med de samme parametre, hentes resultatet fra cachen.

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

I dette eksempel gemmer getUserById metoden resultatet af en forespørgsel på en bruger efter deres ID i en cache kaldet "usersCache". Hvis metoden kaldes igen med samme userId, hentes dataene fra cachen i stedet for at udføre forespørgslen mod databasen.

Opdatering af cachen

@CachePut annotationen opdaterer cachen hver gang metoden udføres, uanset om resultatet tidligere var cacheret.

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

Annotationen @CachePut bruges til at opdatere cachen hver gang updateUser-metoden kaldes. Dette er nyttigt, når data ændres, og det er nødvendigt at synkronisere cachen med ændringerne i databasen. Cachen opdateres med den nøgle, der svarer til bruger-ID'et.

Rydning af cache

Annotationen @CacheEvict bruges til at fjerne data fra cachen, f.eks. når en bruger slettes fra databasen.

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

I dette eksempel fjerner deleteUser-metoden posten fra cachen med nøglen lig med userId.

Kombinerede cache-operationer

@Caching-annotationen muliggør flere cache-operationer inden for en enkelt metode, hvor @CachePut og @CacheEvict kombineres.

@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 eksempel opdaterer updateUser-metoden samtidig cachen med brugerens nye tilstand ved hjælp af @CachePut og fjerner den gamle post fra cachen ved hjælp af @CacheEvict. Dette er nyttigt, når der skal udføres flere cache-operationer på samme tidspunkt.

1. Hvornår anvendes @CacheEvict?

2. Hvad er formålet med @CachePut-annoteringen?

question mark

Hvornår anvendes @CacheEvict?

Select the correct answer

question mark

Hvad er formålet med @CachePut-annoteringen?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 5. Kapitel 3
some-alt