Découvrir Redis pour les applications Java et Spring Boot

Effectué

Pendant le déploiement de votre instance Azure Cache pour Redis, lisez les sections suivantes pour en savoir plus sur ces technologies :

  • Redis et Azure Cache pour Redis.
  • Redis avec des applications Java et Spring Boot.
  • Cache distribué Spring Data Redis.

Redis et Azure Cache pour Redis

Redis est un magasin de données en mémoire distribué open source, sous licence BSD, avec des options de durabilité. Il joue le rôle de cache et de répartiteur de messages. Redis est l’une des bases de données clé-valeur les plus populaires. Sa facilité d’utilisation, ses performances et sa scalabilité en font un excellent choix pour les développeurs d’applications.

Azure Cache pour Redis est une version managée de Redis qui est gérée et exploitée par Azure dans le cloud. Azure Cache pour Redis offre tous les avantages de Redis, notamment un débit et des performances de haut niveau permettant de gérer des millions de demandes par seconde. Azure offre également les avantages d’un service cloud managé comme les correctifs automatiques, les mises à jour, la mise à l’échelle et le provisionnement.

Azure Cache pour Redis propose plusieurs niveaux de service. Les niveaux avancés fournissent le clustering, la géoréplication et la haute disponibilité pour les charges de travail les plus critiques.

Cas d’usage d’Azure Cache pour Redis

Les principaux cas d’usage de Redis et d’Azure Cache pour Redis sont les suivants :

  • Un cache distribué booste les applications qui reposent sur des bases de données SQL. Redis peut également réduire le coût d’une application, car il est plus économique de mettre à l’échelle un cluster Redis qu’une base de données.
  • Un magasin de données de session HTTP stocke les données de session, ce qui permet la mise à l’échelle des applications basées sur des sessions. Les applications qui utilisent JavaServer Faces (JSF) ou qui stockent des données de sécurité dans la session utilisateur emploient généralement ce mécanisme.
  • Une solution de répartiteur de messages implémente des architectures de publication/abonnement ou de file d’attente.

Utiliser Redis avec Java

Redis ne fournit pas de bibliothèque officielle aux développeurs Java, mais plusieurs bibliothèques open source sont à leur disposition. En tant que développeur Java, la sélection de la bibliothèque qui répond le mieux à vos besoins est une décision importante. Les bibliothèques les plus populaires sont les suivantes.

  • Jedis est la bibliothèque la plus utilisée. Elle est simple et conviviale.
  • Lettuce est la bibliothèque utilisée dans ce module parce qu’elle est fournie avec Spring Data Redis. Lettuce offre une excellente prise en charge asynchrone, ce qui est important si vous souhaitez créer une application Spring réactive.
  • Redisson est le client Redis le plus avancé. Vous pouvez utiliser Redisson comme cache de second niveau Hibernate si vous avez besoin de cette fonctionnalité.

Utiliser Spring Data Redis pour créer un cache distribué

Pour créer un cache distribué en utilisant Redis avec Spring Boot, en général avec Spring Initializr, vous devez effectuer trois tâches principales :

  1. Ajouter la bibliothèque Spring Data Redis à votre application.
  2. Configurer votre fichier application.yml pour vous connecter à votre instance Azure Cache pour Redis.
  3. Coder une logique métier en utilisant Spring Data Redis pour stocker et récupérer des données du cache.

Le module actuel utilise la bibliothèque Lettuce, mais vous n’avez pas besoin d’utiliser la bibliothèque directement, sauf si vous avez besoin d’une configuration avancée. Spring Data gère le code d’accès aux données en utilisant un mécanisme que la plupart des développeurs Spring doivent connaître. Vous pouvez également utiliser Spring Data pour accéder aux bases de données SQL avec l’API Java Persistence (JPA) et aux bases de données NoSQL comme MongoDB.

Spring Data vous oblige à créer les classes suivantes :

  • Un bean Java pour stocker vos données. Vous annotez la classe avec l’annotation Java @RedisHash pour stocker et récupérer des données Redis par le biais d’une clé spécifique.

  • Un dépôt Spring. Ce dépôt est une classe Java spécifique qui peut effectuer des opérations relatives à une base de données (créer, récupérer, mettre à jour, supprimer) sur le bean Java qui stocke les données. Par exemple, cette classe peut stocker une instance du bean ou récupérer une liste de beans.

    Vous pouvez injecter ce dépôt Spring dans n’importe quel bean Spring standard. Par exemple, vous pouvez injecter le dépôt dans un contrôleur REST Spring MVC qui stocke les données du dépôt et y accède.

Passez à l’unité suivante pour créer une application Spring Boot avec un cache distribué qui utilise Spring Data Redis. Vous pouvez créer l’application en attendant que le déploiement de votre cache Azure Cache pour Redis se termine.