Informazioni su Redis per applicazioni Java e Spring Boot

Completato

Durante la distribuzione dell'istanza di cache di Azure per Redis, leggere le sezioni seguenti per altre informazioni sulle tecnologie elencate di seguito:

  • Redis e cache di Azure per Redis.
  • Redis per applicazioni Java e Spring Boot.
  • Cache distribuita Spring Data Redis.

Redis e cache di Azure per Redis

Redis è un archivio dati in memoria distribuito open source con licenza BSD con durabilità facoltativa che funge da cache e broker di messaggi. Redis è uno dei database chiave-valore più diffusi, con facilità d'uso, prestazioni e scalabilità che lo rendono una scelta eccellente per gli sviluppatori di applicazioni.

Cache di Azure per Redis è una versione gestita di Redis che Azure mantiene e gestisce nel cloud. Cache di Azure per Redis offre tutti i vantaggi di Redis, tra cui velocità effettiva e prestazioni elevate per gestire milioni di richieste al secondo. Azure offre anche tutti i vantaggi di un servizio cloud, come applicazione automatica di patch, aggiornamenti, ridimensionamento e provisioning.

Cache di Azure per Redis offre diversi livelli di servizio. I livelli avanzati offrono il clustering, la replica geografica e la disponibilità elevata per i carichi di lavoro più critici.

Casi d’uso di cache di Azure per Redis

Redis e cache di Azure per Redis offrono i casi d'uso principali seguenti:

  • Una cache distribuita accelera le applicazioni che usano un database SQL. Può anche ridurre il costo di un'applicazione, in quanto il ridimensionamento di un cluster Redis è più economico rispetto a quello di un database.
  • Un archivio dati di sessione HTTP archivia i dati della sessione, consentendo il ridimensionamento delle applicazioni basate sulla sessione. Le applicazioni che usano JavaServer Faces (JSF) o che archiviano i dati di sicurezza nella sessione utente usano in genere questo meccanismo.
  • Una soluzione di broker di messaggi implementa architetture di pubblicazione/sottoscrizione o di coda.

Usare Redis con Java

Redis non fornisce una libreria ufficiale per gli sviluppatori Java, ma sono disponibili diverse librerie open source. Una delle decisioni principali in qualità di sviluppatore Java consiste nel selezionare la libreria più adatta alle proprie esigenze. Le librerie più diffuse sono le seguenti.

  • Jedis è la libreria più usata che garantisce un utilizzo semplice e immediato.
  • Lettuce è la libreria che verrà usata in questo modulo, perché viene fornita con Spring Data Redis. Offre un eccellente supporto asincrono, che è importante se si vuole creare un'applicazione Spring reattiva.
  • Redisson è il client Redis più avanzato. È anche possibile usare questa soluzione come cache Hibernate di secondo livello, se questa funzionalità è necessaria.

Usare Spring Data Redis per creare una cache distribuita

Per creare una cache distribuita usando Redis con Spring Boot, in genere con Spring Initializr, si eseguono tre attività principali:

  1. Aggiungere la libreria Spring Data Redis alla propria applicazione.
  2. Configurare il file application.yml per la connessione all'istanza della cache di Azure per Redis.
  3. Scrivere il codice per la logica di business usando Spring Data Redis per archiviare i dati nella cache e recuperarli.

Il modulo corrente usa la libreria Lettuce, ma non è necessario usare direttamente la libreria, a meno che non sia necessaria la configurazione avanzata. Spring Data gestisce tutto il codice di accesso ai dati, usando un meccanismo familiare per la maggior parte degli sviluppatori Spring. È anche possibile usare Spring Data per accedere ai database SQL usando l'API di persistenza Java (JPA) e per accedere a database NoSQL come MongoDB.

Spring Data richiede la creazione delle classi seguenti:

  • Un oggetto bean Java per contenere i dati. Annotare la classe con l'annotazione Java @RedisHash per archiviare e recuperare i dati Redis tramite una chiave specifica.

  • Un repository Spring. Questo repository è una classe Java specifica in grado di eseguire operazioni di creazione, recupero, aggiornamento ed eliminazione (CRUD) del database nel bean Java che archivia i dati. Può ad esempio archiviare un'istanza del bean o recuperare un elenco di bean.

    È quindi possibile inserire questo repository Spring in qualsiasi bean Spring standard. Ad esempio, è possibile inserire il repository in un controller REST Spring MVC, che archivia e accede ai dati del repository.

Passare all'unità successiva per creare un'applicazione Spring Boot con una cache distribuita che usa Spring Data Redis. È possibile creare l'applicazione durante l'attesa del completamento della distribuzione della cache di Azure per Redis.