Condividi tramite


Usare Cache Redis di Azure in Spring

Cache di Azure per Redis offre un archivio 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 a cache di Azure per Redis tramite identità definite in Microsoft Entra ID. Con l'autenticazione di Microsoft Entra è possibile gestire centralmente le identità degli utenti del database e di altri servizi Microsoft semplificando la gestione delle autorizzazioni.

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

Prerequisiti

Memorizzazione nella cache dei dati in cache di Azure per Redis

Con un'istanza di cache di Azure per Redis è 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 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.18.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Nota

Questa distinta base deve essere configurata nella <dependencyManagement> sezione del file di pom.xml . Questa configurazione garantisce che tutte le dipendenze di Spring Cloud Azure usino la stessa versione. Per altre informazioni sulla versione usata per questa distinta base, vedere La versione di Spring Cloud azure da usare.

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=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 entra Microsoft nella cache di Usare Microsoft Entra ID per l'autenticazione della cache e copiare il valore del 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 per consentire agli sviluppatori di 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 di documentazione di Spring in Azure.