Contenu du cours
Introduction à Redis
Introduction à Redis
Annotations pour Travailler avec le Cache
Au lieu de gérer manuellement la mise en cache, vous pouvez utiliser des annotations qui gèrent automatiquement le processus. Jetons un coup d'œil aux annotations disponibles.
Mise en cache des résultats
L'annotation @Cacheable
est appliquée aux méthodes dont les résultats doivent être mis en cache. Lorsque la méthode est appelée à nouveau avec les mêmes paramètres, le résultat est récupéré depuis le cache.
Dans cet exemple, la méthode getUserById
met en cache le résultat d'une requête utilisateur par leur ID
dans un cache nommé "usersCache"
. Si la méthode est appelée à nouveau avec le même userId
, les données sont récupérées du cache au lieu d'exécuter la requête contre la base de données.
Mise à jour du Cache
L'annotation @CachePut
met à jour le cache chaque fois que la méthode est exécutée, indépendamment du fait que le résultat ait été mis en cache précédemment.
L'annotation @CachePut
est utilisée pour mettre à jour le cache chaque fois que la méthode updateUser
est appelée. Cela est utile lorsque les données changent et que vous devez synchroniser le cache avec les modifications dans la base de données. Le cache est mis à jour avec la clé correspondant à l'ID utilisateur.
Effacement du Cache
L'annotation @CacheEvict
est utilisée pour supprimer des données du cache, par exemple lorsqu'un utilisateur est supprimé de la base de données.
Dans cet exemple, la méthode deleteUser
supprime l'entrée du cache avec la clé égale à userId
.
Opérations de Cache Combinées
L'annotation @Caching
permet d'effectuer plusieurs opérations de mise en cache au sein d'une seule méthode, combinant @CachePut
et @CacheEvict
.
Dans cet exemple, la méthode updateUser
met à jour simultanément le cache avec le nouvel état de l'utilisateur en utilisant @CachePut
et supprime l'ancienne entrée du cache en utilisant @CacheEvict
. Cela est utile lorsque vous devez effectuer plusieurs opérations de cache en même temps.
1. Quand utiliseriez-vous @CacheEvict
?
2. Quel est le but de l'annotation @CachePut
?
Merci pour vos commentaires !