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
Una sottoscrizione di Azure: crearne una gratuitamente.
Java Development Kit (JDK) versione 17 o superiore.
Apache Maven, versione 3.0 o successiva.
cURL o un'utilità HTTP simile per testare la funzionalità.
Istanza della cache Redis. Se non ne hai uno, consulta Guida rapida: Creare una cache Redis open source.
Applicazione Spring Boot. Se non ne hai uno, crea un progetto Maven con il Spring Initializr. Assicurati di selezionare Progetto Maven e, in Dipendenze, aggiungi le dipendenze Spring Web e Spring Data Reactive Redis, quindi seleziona Java versione 8 o successiva.
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:
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.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.