Partager via


Utiliser le cache Redis Azure au printemps

Cache Azure pour Redis fournit un magasin de données en mémoire basé sur le logiciel Redis. Redis améliore considérablement les performances et l’extensibilité d’une application qui utilise des magasins de données principaux.

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 au Cache Azure 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 utilisateur de base de données et d’autres services Microsoft dans un emplacement central, 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.

Conditions préalables

Mise en cache des données vers le cache Azure pour Redis

Avec une instance Azure Cache pour Redis, vous pouvez mettre en cache des données à l’aide d’Azure Spring Cloud.

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>org.springframework.boot</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.20.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Remarque

Cette bill of Material (BOM) doit être configurée dans la section <dependencyManagement> 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 Quelle version de Spring Cloud Azure dois-je 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 :

  1. 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=10000
    spring.data.redis.username=<your-redis-username>
    spring.data.redis.ssl.enabled=true
    spring.data.redis.azure.passwordless-enabled=true
    
    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 de username, suivez les instructions de la Activer l’authentification Microsoft Entra ID dans votre cache section Utiliser l’ID Microsoft Entra pour l’authentification du cache, puis copiez la valeur nom d’utilisateur.

  2. 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 des logs 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 du code. Le service gère l’infrastructure des applications Spring afin que les développeurs puissent se concentrer sur leur code. Azure Spring Apps fournit une gestion du cycle de vie à l’aide de la surveillance et des diagnostics complets, de la gestion de la configuration, de la découverte de services, de l’intégration CI/CD, des déploiements bleu-vert, 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, passez au centre de documentation Spring sur Azure.