Condividi tramite


Guida introduttiva: Usare cache di Azure per Redis in Java con il client Jedis Redis

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

Passare al codice in GitHub

Clonare la guida introduttiva di Java del repository in GitHub.

Prerequisiti

Creare un'istanza di Redis gestita di Azure (anteprima)

  1. Per creare un'istanza di Redis gestita di Azure (anteprima), accedere al portale di Azure e selezionare Crea una risorsa.

  2. Nella casella di ricerca della pagina Nuovo digitare cache di Azure per Redis.

  3. Nella pagina Nuova cache Redis configurare le impostazioni per la nuova cache.

    Impostazione Scegliere un valore Descrizione
    Abbonamento Nell'elenco a discesa selezionare la sottoscrizione. Sottoscrizione in cui creare questa nuova istanza di Redis gestita di Azure.
    Gruppo di risorse Nell'elenco a discesa selezionare un gruppo di risorse oppure scegliere Crea nuovo e immettere il nome di un nuovo 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 nell'area. Il nome della cache deve essere una stringa compresa tra 1 e 63 caratteri in combinazione con il nome dell'area della cache che contiene solo numeri, lettere o trattini. Se il nome della cache è composto da meno di 45 caratteri, deve funzionare in tutte le aree attualmente disponibili. 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\>.\<Azure region\>.redis.azure.net.
    Location Nell'elenco a discesa selezionare una località. Redis gestito di Azure è disponibile nelle aree di Azure selezionate.
    Tipo di cache A discesa e selezionare il livello di prestazioni e le dimensioni della cache. Il livello determina le prestazioni dell'istanza di Redis, mentre le dimensioni della cache determinano la memoria disponibile per archiviare i dati. Per indicazioni sulla scelta del livello di prestazioni corretto, vedere Scelta del livello corretto

    Screenshot che mostra la scheda Nozioni di base di Redis gestite di Azure.

  4. Selezionare Avanti: Rete e selezionare un endpoint pubblico o privato.

  5. Al termine, selezionare Avanti: Avanzate.

    Configurare tutti i moduli Redis da aggiungere all'istanza.

    Per impostazione predefinita, per una nuova cache gestita:

    • L'ID Microsoft Entra è abilitato.
    • L'autenticazione delle chiavi di accesso è disabilitata per motivi di sicurezza.

    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.

    Impostare i criteri di clustering su Enterprise per una cache non cluster o su OSS per una cache in cluster. Per altre informazioni sulla scelta dei criteri di clustering, vedere Criteri del cluster.

    Screenshot che mostra la scheda Avanzate di Redis gestita di Azure.

    Se si usa la replica geografica attiva, è necessario configurarla durante la creazione. Per altre informazioni, vedere Configurare la replica geografica attiva per le istanze di Redis gestite di Azure.

    Importante

    Non è possibile modificare i criteri di clustering di un'istanza di Redis gestita di Azure (anteprima) dopo averla creata. Se si usa RediSearch, è necessario il criterio cluster Enterprise ed NoEviction è l'unico criterio di rimozione supportato.

    Importante

    Se si usa questa istanza della cache in un gruppo di replica geografica, non è possibile modificare i criteri di rimozione dopo la creazione dell'istanza. Assicurarsi di conoscere i criteri di rimozione dei nodi primari prima di creare la cache. Per altre informazioni sulla replica geografica attiva, vedere Prerequisiti per la replica geografica attiva.

    Importante

    Non è possibile modificare i moduli dopo aver creato un'istanza della cache. I moduli devono essere abilitati al momento della creazione di un'istanza di cache di Azure per Redis. Non è possibile abilitare la configurazione di un modulo dopo la creazione di una cache.

  6. Selezionare Avanti: Tag e ignorare.

  7. Selezionare Avanti: Rivedi e crea.

  8. Rivedere le impostazioni e selezionare Crea.

    La creazione dell'istanza di Redis richiede alcuni minuti. È possibile monitorare lo stato di avanzamento nella pagina Panoramica di Redis gestita di Azure. Quando l'elemento Stato indica In esecuzione, la cache è pronta per l'uso.

Creare un'istanza di Azure Cache per Redis

  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 Stato mostra In esecuzione, la cache è pronta per l'uso.

Recuperare il nome host, le porte e le chiavi di accesso dal portale di Azure

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

  • Per ottenere il nome host e le porte per la cache, selezionare Panoramica dal menu Risorsa . Il nome host è nel formato <DNS name>.redis.cache.windows.net.

    Screenshot che mostra cache di Azure per Redis proprietà.

  • Per ottenere le chiavi di accesso, selezionare Autenticazione dal menu Risorsa . Quindi, selezionare la scheda Chiavi di accesso.

    Screenshot che mostra cache di Azure per Redis chiavi di accesso.

Configurare l'ambiente di lavoro

I passaggi seguenti illustrano come configurare l'ambiente di lavoro per l'app Java. È possibile scegliere di eseguire l'autenticazione con cache di Azure per Redis usando Microsoft Entra ID (scelta consigliata) o chiavi di accesso.

export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export USER_NAME=<user-name>
export REDIS_CACHE_PORT=10000
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export USER_NAME=<user-name>
export REDIS_CACHE_PORT=6380

Sostituire i segnaposto con i valori seguenti:

  • <your-host-name>: nome host DNS. Per ottenere il nome host e le porte per la cache, selezionare Panoramica dal menu Risorsa . Il nome host è nel formato <DNS name>.redis.cache.windows.net.

    Screenshot che mostra cache di Azure per Redis proprietà.

  • <user-name>: ID oggetto dell'identità gestita o dell'entità servizio.

    È possibile ottenere il nome utente seguendo questa procedura:

    1. Nel portale di Azure passare all'istanza di Cache di Azure per Redis.

    2. Nel riquadro di spostamento selezionare Configurazione accesso ai dati.

    3. Nella scheda Utenti Redis individuare la colonna Nome utente.

      Screenshot del portale di Azure che mostra la pagina Configurazione accesso ai dati di Cache di Azure per Redis con la scheda Utenti Redis e un valore Nome utente evidenziato.

Creare una nuova app Java

  1. Usare maven per generare una nuova app di avvio rapido:

    mvn archetype:generate \
        -DarchetypeGroupId=org.apache.maven.archetypes \
        -DarchetypeArtifactId=maven-archetype-quickstart \
        -DarchetypeVersion=1.3 \
        -DinteractiveMode=false \
        -DgroupId=example.demo \
        -DartifactId=redis-jedis-test \
        -Dversion=1.0
    
  2. Passare alla nuova directory del progetto redis-jedis-test .

  3. Aprire il file pom.xml. Nel file viene visualizzata una dipendenza per Jedis:

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-identity</artifactId>
        <version>1.15.0</version> <!-- {x-version-update;com.azure:azure-identity;dependency} -->
    </dependency>
    
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>5.2.0</version> <!-- {x-version-update;redis.clients:jedis;external_dependency} -->
    </dependency>
    
  4. Chiudere il file pom.xml.

  5. Aprire App.java e visualizzare il codice con il codice seguente:

    package example.demo;
    
    import com.azure.identity.DefaultAzureCredential;
    import com.azure.identity.DefaultAzureCredentialBuilder;
    import com.azure.core.credential.TokenRequestContext;
    import redis.clients.jedis.DefaultJedisClientConfig;
    import redis.clients.jedis.Jedis;
    
    /**
     * Redis test
     *
     */
    public class App
    {
        public static void main( String[] args )
        {
    
            boolean useSsl = true;
    
            //Construct a Token Credential from Identity library, e.g. DefaultAzureCredential / ClientSecretCredential / Client CertificateCredential / ManagedIdentityCredential etc.
            DefaultAzureCredential defaultAzureCredential = new DefaultAzureCredentialBuilder().build();
    
            // Fetch a Microsoft Entra token to be used for authentication. This token will be used as the password.
                    String token = defaultAzureCredential
                            .getToken(new TokenRequestContext()
                                    .addScopes("https://redis.azure.com/.default")).block().getToken();
    
            String cacheHostname = System.getenv("REDIS_CACHE_HOSTNAME");
            String username = System.getenv("USER_NAME");
            int port = Integer.parseInt(System.getenv().getOrDefault("REDIS_CACHE_PORT", "6380"));
    
            // Connect to the Azure Cache for Redis over the TLS/SSL port using the key.
            Jedis jedis = new Jedis(cacheHostname, port, DefaultJedisClientConfig.builder()
                    .password(token) // Microsoft Entra access token as password is required.
                    .user(username) // Username is Required
                    .ssl(useSsl) // SSL Connection is Required
                    .build());
            // Perform cache operations 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.

  6. Chiudere il file App.java .

Compilare ed eseguire l'app

Eseguire il comando Maven seguente per compilare ed eseguire l'app:

mvn compile 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

Se si prevede di continuare con l'esercitazione successiva, sarà possibile conservare le risorse create in questa guida introduttiva e riutilizzarle.

In caso contrario, se si è terminato il lavoro con l'applicazione di esempio di avvio rapido, è possibile eliminare le risorse di Azure create in questo avvio rapido per evitare i costi correlati.

Importante

L'eliminazione di un gruppo di risorse è irreversibile e comporta l'eliminazione definitiva del gruppo di risorse e di tutte le risorse incluse nel gruppo. Assicurarsi di non eliminare accidentalmente il gruppo di risorse sbagliato o le risorse errate. Se le risorse per questo esempio sono state create all'interno di un gruppo di risorse esistente che contiene anche elementi da mantenere, è possibile eliminare ogni elemento singolarmente anziché eliminare il gruppo di risorse.

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

  2. Nella casella di testo Filtra per nome digitare il nome del gruppo di risorse. Le istruzioni di questo articolo usano un gruppo di risorse denominato TestResources. Nel gruppo di risorse nell'elenco dei risultati selezionare TestResources quindi Elimina gruppo di risorse.

    Screenshot del portale di Azure che mostra la pagina Gruppo di risorse con il pulsante Elimina gruppo di risorse evidenziato.

  3. Digitare il nome del gruppo di risorse per confermare l'eliminazione e quindi selezionare Elimina.

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

Passaggi successivi

In questa guida introduttiva si è visto come usare Cache Redis di Azure da un'applicazione Java. Continuare con la guida introduttiva successiva per usare Cache Redis di Azure con un'app Web ASP.NET.