Guida introduttiva: Usare la cache di Azure per Redis con un'app Java

In questa guida introduttiva si incorpora Cache Redis di Azure in un'app Java usando il client Jedis Redis. L'app si connette a una cache sicura e dedicata accessibile da qualsiasi applicazione in Azure.

Passare al codice

Questa guida introduttiva usa la funzionalità archetipo Maven per generare lo scaffolding per un’app Java. La guida introduttiva descrive come configurare il codice per creare un'app funzionante che si connette a Cache Redis di Azure.

Per passare direttamente al codice, vedere l'esempio di avvio rapido di Java in GitHub.

Prerequisiti

Creare una cache

  1. Per creare una cache, accedere al portale di Azure. Nel menu del portale selezionare Crea una risorsa.

    Screenshot che mostra l'opzione Crea una risorsa evidenziata nel riquadro di spostamento a sinistra nel portale di Azure.

  2. Nel riquadro Attività iniziali immettere Cache di Azure per Redis nella barra di ricerca. Nei risultati della ricerca trovare Cache di Azure per Redis e quindi selezionare Crea.

    Screenshot che mostra Azure Marketplace con Cache di Azure per Redis nella casella di ricerca e il pulsante Crea evidenziato.

  3. Nel riquadro Nuova cache Redis, nella scheda Informazioni di base configurare le impostazioni seguenti per la cache:

    Impostazione Azione Descrizione
    Abbonamento Seleziona la tua sottoscrizione di Azure. Sottoscrizione da usare per creare la nuova istanza della cache di Azure per Redis.
    Gruppo di risorse Selezionare un gruppo di risorse oppure selezionare Crea nuovo e immettere un nuovo nome del gruppo di risorse. Nome del gruppo di risorse in cui creare la cache e altre risorse. L'inserimento di tutte le risorse di un'app in un unico gruppo di risorse ne semplifica la gestione o l'eliminazione.
    Nome DNS Immettere un nome univoco. Il nome della cache deve essere una stringa compresa tra 1 e 63 caratteri contenente solo numeri, lettere o trattini. Il nome deve iniziare e terminare con un numero o una lettera e non può contenere trattini consecutivi. Il nome host dell'istanza della cache è \<DNS name>.redis.cache.windows.net.
    Location Selezionare una località. Un'area di Azure vicina ad altri servizi che usano la cache.
    SKU della cache Selezionare uno SKU. Lo SKU determina le dimensioni, le prestazioni e i parametri delle funzionalità disponibili per la cache. Per altre informazioni, vedere la panoramica su Cache Redis di Azure.
    Dimensioni della cache Selezionare le dimensioni della cache. Per altre informazioni, vedere la panoramica su Cache Redis di Azure.
  4. Selezionare la scheda Rete oppure selezionare Avanti: Rete.

  5. Nella scheda Rete selezionare un metodo di connettività da usare per la cache.

  6. Selezionare la scheda Avanzate o Avanti: Avanzate.

  7. Nel riquadro Avanzate verificare o selezionare un metodo di autenticazione in base alle informazioni seguenti:

    Screenshot che mostra il riquadro Avanzate e le opzioni disponibili per la selezione.

    • Per impostazione predefinita, per una nuova cache Basic, Standard o Premium, l'Autenticazione di Microsoft Entra è abilitata e l'Autenticazione delle chiavi di accesso è disabilitata.
    • Per le cache Basic o Standard, è possibile scegliere la selezione di una porta non TLS.
    • Per le cache Standard e Premium, è possibile scegliere di abilitare le zone di disponibilità. Non è possibile disabilitare le zone di disponibilità dopo la creazione della cache.
    • Per una cache Premium, configurare le impostazioni per la porta non TLS, il clustering, l'identità gestita e la persistenza dei dati.

    Importante

    Per una protezione ottimale, è consigliabile usare Microsoft Entra ID con identità gestite per autorizzare le richieste nella cache ogni volta che è possibile. L'autorizzazione tramite Microsoft Entra ID e le identità gestite offre sicurezza e facilità d'uso superiori rispetto all'autorizzazione con chiave di accesso condiviso. Per altre informazioni sull'uso delle identità gestite con le cache, vedere Usare Microsoft Entra ID per l'autenticazione della cache.

  8. (Facoltativo) Selezionare la scheda Tag o selezionare Avanti: Tag.

  9. (Facoltativo) Nella scheda Tag immettere un nome e un valore di tag per classificare la risorsa della cache.

  10. Selezionare il pulsante Rivedi e crea.

    Nella scheda Rivedi e crea Azure convalida automaticamente la configurazione.

  11. Quando viene visualizzato il messaggio verde di Convalida superata, selezionare Crea.

Una nuova distribuzione della cache richiede diversi minuti. È possibile monitorare lo stato di avanzamento della distribuzione nel riquadro Panoramica di Cache di Azure per Redis. Quando l'elemento Stato mostra In esecuzione, la cache è pronta per l'uso.

Ottenere il nome host, le porte e la chiave di accesso

Per connettersi al server della cache di Azure per Redis, il client della cache deve avere il nome host, le porte e una chiave di accesso della cache. Alcuni client possono fare riferimento a questi elementi usando nomi leggermente diversi. È possibile ottenere il nome host, le porte e le chiavi nel portale di Azure.

  • Per ottenere una chiave di accesso per la cache:

    1. Nel portale di Azure andare alla cache.
    2. Nel menu del servizio, in Impostazioni, selezionare Autenticazione.
    3. Nel riquadro Autenticazione selezionare la scheda Chiavi di accesso.
    4. Per copiare il valore per una chiave di accesso, selezionare l'icona Copia nel campo della chiave.

    Screenshot che mostra come trovare e copiare una chiave di accesso per un'istanza della cache di Azure per Redis.

  • Per ottenere il nome host e le porte della cache:

    1. Nel portale di Azure andare alla cache.
    2. Nel menu del servizio, selezionare Panoramica.
    3. In Funzionalità essenziali, per Nome host, selezionare l'icona Copia per copiare il valore del nome host. Il formato del valore del nome host è il seguente: <DNS name>.redis.cache.windows.net.
    4. Per Porte, selezionare l'icona Copia per copiare i valori delle porte.

    Screenshot che mostra come trovare e copiare il nome host e le porte per un'istanza della cache di Azure per Redis.

Configurare l'ambiente di lavoro

A seconda del sistema operativo, aggiungere variabili di ambiente per il nome host e la chiave di accesso primaria annotati in precedenza. In una finestra del prompt dei comandi o in una finestra del terminale impostare i valori seguenti:

export REDISCACHEHOSTNAME=<your-host-name>.redis.cache.windows.net
export REDISCACHEKEY=<your-primary-access-key>

Sostituire i segnaposto con i valori seguenti:

  • <your-host-name>: il nome host DNS, ottenuto dalla sezione Proprietà della risorsa cache di Azure per Redis nel portale di Azure.
  • <your-primary-access-key>: la chiave di accesso primaria, ottenuta dalla sezione Chiavi di accesso della risorsa cache di Azure per Redis nel portale di Azure.

Esaminare l'esempio Java

In questo esempio si usa Maven per eseguire l'app di avvio rapido.

  1. Passare alla nuova directory di progetto redistest.

  2. Aprire il file pom.xml. Nel file verificare che venga visualizzata una dipendenza per Jedis:

    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>4.1.0</version>
      <type>jar</type>
      <scope>compile</scope>
    </dependency>
    
  3. Chiudere il file pom.xml.

  4. Aprire App.java e verificare che venga visualizzato il codice seguente:

    package example.demo;
    
    import redis.clients.jedis.DefaultJedisClientConfig;
    import redis.clients.jedis.Jedis;
    
    /**
     * Redis test
     *
     */
    public class App 
    {
        public static void main( String[] args )
        {
    
            boolean useSsl = true;
            String cacheHostname = System.getenv("REDISCACHEHOSTNAME");
            String cachekey = System.getenv("REDISCACHEKEY");
    
            // Connect to the Azure Cache for Redis over the TLS/SSL port using the key.
            Jedis jedis = new Jedis(cacheHostname, 6380, DefaultJedisClientConfig.builder()
                .password(cachekey)
                .ssl(useSsl)
                .build());
    
            // Perform cache operations by using the cache connection object. 
    
            // Simple PING command
            System.out.println( "\nCache Command  : Ping" );
            System.out.println( "Cache Response : " + jedis.ping());
    
            // Simple get and put of integral data types into the cache
            System.out.println( "\nCache Command  : GET Message" );
            System.out.println( "Cache Response : " + jedis.get("Message"));
    
            System.out.println( "\nCache Command  : SET Message" );
            System.out.println( "Cache Response : " + jedis.set("Message", "Hello! The cache is working from Java!"));
    
            // Demonstrate "SET Message" executed as expected...
            System.out.println( "\nCache Command  : GET Message" );
            System.out.println( "Cache Response : " + jedis.get("Message"));
    
            // Get the client list, useful to see if connection list is growing...
            System.out.println( "\nCache Command  : CLIENT LIST" );
            System.out.println( "Cache Response : " + jedis.clientList());
    
            jedis.close();
        }
    }
    

    Questo codice mostra come connettersi a un'istanza di Cache Redis di Azure usando il nome host della cache e le variabili di ambiente chiave. Il codice, inoltre, archivia e recupera un valore stringa nella cache. Vengono anche eseguiti i comandi PING e CLIENT LIST.

  5. Chiudere App.java.

Compilare ed eseguire l'app

  1. Impostare le variabili di ambiente come indicato in precedenza:

    export REDISCACHEHOSTNAME=<your-host-name>.redis.cache.windows.net
    export REDISCACHEKEY=<your-primary-access-key>
    
  2. Per compilare ed eseguire l'app, eseguire il comando Maven seguente:

    mvn compile
    mvn exec:java -D exec.mainClass=example.demo.App
    

Nell'output seguente è possibile notare che la chiave Message aveva in precedenza un valore memorizzato nella cache. Il valore è stato aggiornato a un nuovo valore usando jedis.set. L'app ha anche eseguito i comandi PING e CLIENT LIST.

Cache Command  : Ping
Cache Response : PONG

Cache Command  : GET Message
Cache Response : Hello! The cache is working from Java!

Cache Command  : SET Message
Cache Response : OK

Cache Command  : GET Message
Cache Response : Hello! The cache is working from Java!

Cache Command  : CLIENT LIST
Cache Response : id=777430 addr=             :58989 fd=22 name= age=1 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 ow=0 owmem=0 events=r cmd=client numops=6

Pulire le risorse

Per continuare a usare le risorse create in questo articolo, mantenere il gruppo di risorse.

In alternativa, per evitare addebiti relativi alle risorse, se si è terminato di usare le risorse è possibile eliminare il gruppo di risorse di Azure creato.

Avviso

L'eliminazione di un gruppo di risorse è irreversibile. Quando si elimina un gruppo di risorse, tutte le risorse al suo interno vengono eliminate in modo permanente. Assicurarsi di non eliminare accidentalmente il gruppo di risorse sbagliato o le risorse errate. Se le risorse sono state create all'interno di un gruppo di risorse esistente che contiene anche risorse da mantenere, è possibile eliminare ogni singola risorsa individualmente anziché l'intero gruppo.

Eliminare un gruppo di risorse

  1. Accedere al portale di Azure e selezionare Gruppi di risorse.

  2. Selezionare il gruppo di risorse da eliminare.

    Se sono presenti molti gruppi di risorse, in Filtra per qualsiasi campo immettere il nome del gruppo di risorse creato per completare questo articolo. Nell'elenco dei risultati della ricerca selezionare il gruppo di risorse.

    Screenshot che mostra un elenco di gruppi di risorse tra cui scegliere quello da eliminare.

  3. Selezionare Elimina gruppo di risorse.

  4. Nel riquadro Elimina un gruppo di risorse immettere il nome del gruppo di risorse per confermare, quindi selezionare Elimina.

    Screenshot che mostra una casella che richiede l'immissione del nome della risorsa per confermare l'eliminazione.

Dopo qualche istante, il gruppo di risorse e tutte le risorse che contiene vengono eliminati.