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
Una sottoscrizione di Azure: creare un account gratuitamente.
Java Development Kit (JDK) versione 17 o successiva.
Apache Maven, versione 3.0 o successiva.
cURL o un'utilità HTTP simile per testare la funzionalità.
Istanza della cache Redis. Se non è disponibile, vedere Avvio rapido: Creare una cache Redis open source.
Applicazione Spring Boot. Se non è disponibile, creare un progetto Maven con Spring Initializr. Assicurarsi di selezionare Progetto Maven e, in Dipendenze, aggiungere le dipendenze Spring Web e Spring Data Reactive Redis e quindi selezionare Java versione 8 o successiva.
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:
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.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.