Utiliser le cache Redis Azure au printemps
Azure Cache pour Redis fournit un magasin de données en mémoire basé sur le logiciel Redis. Redis améliore les performances et l’extensibilité d’une application qui utilise des magasins de données back-end fortement.
Ce tutoriel montre comment utiliser un cache Redis pour stocker et récupérer des données dans une application Spring Boot.
Dans ce tutoriel, nous incluons deux méthodes d’authentification : l’authentification Microsoft Entra et l’authentification Redis. L’onglet Sans mot de passe affiche l’authentification Microsoft Entra et l’onglet Mot de passe affiche l’authentification Redis.
L’authentification Microsoft Entra est un mécanisme de connexion à Azure Cache pour Redis à l’aide d’identités définies dans l’ID Microsoft Entra. Avec l’authentification Microsoft Entra, vous pouvez gérer les identités des utilisateurs de base de données et d’autres services Microsoft dans un emplacement centralisé, ce qui simplifie la gestion des autorisations.
L’authentification Redis utilise des mots de passe dans Redis. Si vous choisissez d’utiliser des mots de passe comme informations d’identification, vous devez gérer les mots de passe par vous-même.
Prérequis
Un abonnement Azure - En créer un gratuitement
Java Development Kit (JDK) version 17 ou ultérieure.
Apache Maven, version 3.0 ou ultérieure.
cURL ou un utilitaire HTTP similaire pour tester la fonctionnalité.
Instance de cache Redis. Si vous n’en avez pas, consultez Démarrage rapide : Créer un cache Redis open source.
Une application Spring Boot. Si vous n’en avez pas, créez un projet Maven avec Spring Initializr. Veillez à sélectionner Maven Project et, sous Dépendances, ajoutez les dépendances Spring Web et Spring Data React Redis, puis sélectionnez Java version 8 ou ultérieure.
Mise en cache des données dans Azure Cache pour Redis
Avec une instance Azure Cache pour Redis, vous pouvez mettre en cache des données à l’aide de Spring Cloud Azure.
Pour installer Spring Cloud Azure Starter Data Redis avec le module Lettuce, ajoutez les dépendances suivantes à votre fichier pom.xml :
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-starter-data-redis-lettuce</artifactId>
</dependency>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-dependencies</artifactId>
<version>5.17.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Remarque
Cette facture de matériel (BOM) doit être configurée dans la <dependencyManagement>
section de votre fichier pom.xml . Cette configuration garantit que toutes les dépendances Azure Spring Cloud utilisent la même version. Pour plus d’informations sur la version utilisée pour ce boM, consultez La version de Spring Cloud Azure à utiliser.
Coder l’application
Pour utiliser un cache Redis pour stocker et récupérer des données, configurez l’application en procédant comme suit :
Configurez les informations d’identification du cache Redis dans le fichier de configuration application.properties , comme illustré dans l’exemple suivant.
spring.data.redis.host=<your-redis-name>.redis.cache.windows.net spring.data.redis.port=6380 spring.data.redis.username=<your-redis-username> spring.data.redis.ssl.enabled=true spring.data.redis.azure.passwordless-enabled=true
Remarque
Pour obtenir la valeur pour
username
, suivez les instructions de la section Activer l’authentification microsoft Entra ID dans votre cache d’Utilisation de l’ID Microsoft Entra pour l’authentification du cache et copiez la valeur du nom d’utilisateur .Modifiez le fichier de classe de démarrage pour afficher le contenu suivant. Ce code stocke et récupère les données.
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.ValueOperations; @SpringBootApplication public class DemoCacheApplication implements CommandLineRunner { private static final Logger LOGGER = LoggerFactory.getLogger(DemoCacheApplication.class); @Autowired private StringRedisTemplate template; public static void main(String[] args) { SpringApplication.run(DemoCacheApplication.class, args); } @Override public void run(String... args) { ValueOperations<String, String> ops = this.template.opsForValue(); String key = "testkey"; if(!this.template.hasKey(key)){ ops.set(key, "Hello World"); LOGGER.info("Add a key is done"); } LOGGER.info("Return the value from the cache: {}", ops.get(key)); } }
Ensuite, démarrez l’application. L’application récupère des données à partir de votre cache Redis. Vous devez voir les journaux similaires à l’exemple suivant :
Add a key is done
Return the value from the cache: Hello World
Déployer sur Azure Spring Apps
Maintenant que vous disposez de l’application Spring Boot en cours d’exécution localement, il est temps de le déplacer en production. Azure Spring Apps facilite le déploiement d’applications Spring Boot sur Azure sans aucune modification de code. Le service gère l’infrastructure des applications Spring, ce qui permet aux développeurs de se concentrer sur leur code. Azure Spring Apps assure la gestion du cycle de vie en utilisant des outils complets, tels que la supervision et les diagnostics, la gestion des configurations, la découverte de services, l’intégration CI/CD, les déploiements bleus-verts, etc. Pour déployer votre application sur Azure Spring Apps, consultez Déployer votre première application sur Azure Spring Apps.
Étapes suivantes
Pour en savoir plus sur Spring et Azure, poursuivez vers le centre de documentation Spring sur Azure.