Condividi tramite


Utilizzare la Cache Redis di Azure in Spring

Azure Cache for Redis fornisce un archivio di dati in memoria basato sul software Redis. Redis migliora notevolmente le prestazioni e la scalabilità di un'applicazione che usa archivi dati back-end.

Questa esercitazione illustra come usare una cache Redis per archiviare e recuperare dati in un'applicazione Spring Boot.

In questa esercitazione sono inclusi due metodi di autenticazione: autenticazione di Microsoft Entra e autenticazione Redis. La scheda Senza password mostra l'autenticazione di Microsoft Entra e la scheda Password mostra l'autenticazione Redis.

L'autenticazione di Microsoft Entra è un meccanismo per la connessione ad Azure Cache per Redis usando le identità definite in Microsoft Entra ID. Con l'autenticazione Microsoft Entra, è possibile gestire le identità utente del database e altri servizi Microsoft in una posizione centrale, semplificando la gestione delle autorizzazioni.

L'autenticazione in Redis utilizza le password. Se si sceglie di usare le password come credenziali, è necessario gestire manualmente le password.

Prerequisiti

Memorizzazione dei dati nella cache di Azure Cache for Redis

Con un'istanza di Cache Redis di Azure è possibile memorizzare nella cache i dati usando Spring Cloud Azure.

Per installare il modulo Spring Cloud Azure Starter Data Redis con Lettuce, aggiungere le dipendenze seguenti al file di 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.19.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Nota

Questa distinta base deve essere configurata nella sezione <dependencyManagement> del file di pom.xml. Questa configurazione garantisce che tutte le dipendenze di Spring Cloud Azure usino la stessa versione. Per ulteriori informazioni sulla versione utilizzata per questo BOM, vedere quale versione di Spring Cloud Azure dovrei usare.

Scrivere il codice dell'applicazione

Per usare una cache Redis per archiviare e recuperare i dati, configurare l'applicazione attenendosi alla procedura seguente:

  1. Configurare le credenziali della cache Redis nel file di configurazione application.properties, come illustrato nell'esempio seguente.

    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
    

    Nota

    Per ottenere il valore per username, seguire le istruzioni riportate nella sezione abilitare l'autenticazione DELL'ID Di Microsoft Entra nella cache nella della cache di Usare l'ID di Microsoft Entra per l'autenticazione della cachee copiare il valore nome utente.

  2. Modificare il file della classe di avvio per visualizzare il contenuto seguente. Questo codice archivia e recupera i dati.

    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));
        }
    
    }
    

Avviare quindi l'applicazione. L'applicazione recupera i dati dalla cache Redis. Verranno visualizzati log simili all'esempio seguente:

Add a key is done
Return the value from the cache: Hello World

Distribuire in Azure Spring Apps

Ora che l'applicazione Spring Boot è in esecuzione in locale, è possibile spostarla nell'ambiente di produzione. azure Spring Apps semplifica la distribuzione di applicazioni Spring Boot in Azure senza modifiche al codice. Il servizio gestisce l'infrastruttura delle applicazioni Spring in modo che gli sviluppatori possano concentrarsi sul codice. Azure Spring Apps offre la gestione del ciclo di vita usando monitoraggio e diagnostica completi, gestione della configurazione, individuazione dei servizi, integrazione CI/CD, distribuzioni blu-verde e altro ancora. Per distribuire l'applicazione in Azure Spring Apps, vedere Distribuire la prima applicazione in Azure Spring Apps.

Passaggi successivi

Per altre informazioni su Spring e Azure, passare al Centro documentazione di Spring in Azure.