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

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

  2. Nella pagina Crea una risorsa digitare Azure Managed Redis nella casella di ricerca.

  3. Selezionare il riquadro Redis gestito di Azure e selezionare Crea.

  4. Nel riquadro Crea istanza di Redis gestita di Azure, configurare le impostazioni di una nuova cache nella scheda Principali.

    Impostazione Scegliere un valore Descrizione
    Abbonamento Nell'elenco a discesa selezionare la sottoscrizione. Sottoscrizione in cui creare questa nuova istanza di Managed Redis 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 Immettere un nome univoco nell'area geografica. Il nome della cache deve essere una stringa compresa tra 1 e 63 caratteri in combinazione con il nome dell'area geografica 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 geografiche 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.
    Regione Nell'elenco a discesa selezionare una località. Managed Redis di Azure è disponibile nelle aree geografiche di Azure selezionate.
    Livello dati Selezionare In memoria per prestazioni elevate o Flash per le cache con prestazioni inferiori I livelli in memoria includono Bilanciato, Ottimizzato per la memoria e Ottimizzato per il calcolo. Usare il livello Flash per usare l'archiviazione dati in memoria (RAM) e su disco (SSD).
    Dimensioni cache Apri il menu a tendina e seleziona una dimensione. Le dimensioni della cache dipendono dal livello. La dimensione più piccola è un livello bilanciato. La dimensione massima del livello in memoria è il livello Ottimizzato per la Memoria.
    Prestazioni Aprire il menu a tendina e selezionare una preferenza per le prestazioni. Le prestazioni dipendono dal numero di vCPU. Il numero di vCPU varia a seconda del livello. Ottimizzato per il Calcolo ha il maggior numero di vCPU.

    Per indicazioni sulla scelta del livello di prestazioni corretto, vedere Scelta del livello corretto.

    Importante

    Tutti i livelli in memoria che usano più di 235 GB di spazio di archiviazione sono disponibili in anteprima pubblica, inclusi M350 ottimizzati per la memoria e versioni successive; B350 bilanciato e superiore; e Compute Optimized X350 e versioni successive. Tutti questi livelli e versioni successive sono disponibili in anteprima pubblica.

    Tutti i livelli con ottimizzazione flash sono disponibili in anteprima pubblica.

  5. Selezionare Avanti: Rete e selezionare disabilita l'accesso pubblico e usare l'accesso privato o Abilita l'accesso pubblico da tutte le reti.

  6. Selezionare Avanti: Replica geografica attiva. Per usare la replica geografica attiva, è necessario abilitarla durante il provisioning. Le cache senza replica geografica attiva non possono essere aggiunte o aggiunte a gruppi di replica geografica attiva in un secondo momento. Per altre informazioni, vedere Configurare la replica geografica attiva per le istanze di Managed Redis di Azure.

  7. Selezionare la scheda Avanti: Avanzate .

    Configurare tutti i moduli Redis da aggiungere all'istanza di .

    Impostare i criteri di clustering:

    • Usare Enterprise per usare RedisSearch o altri moduli
    • Usare OSS per una cache in cluster.
    • Utilizzare non cluster (anteprima) per una cache non cluster.

    Per altre informazioni sulla scelta dei criteri di clustering, vedere Criteri del cluster.

    Per impostazione predefinita, per una nuova cache gestita:

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

    Importante

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

    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 l'ID e le identità gestite di Microsoft Entra offre sicurezza e facilità d'uso superiori rispetto all'autorizzazione della chiave di accesso condiviso. Per altre informazioni sull'uso di identità gestite con la cache, vedere Usare l'ID Microsoft Entra per l'autenticazione della cache.

    Importante

    Non è possibile modificare i criteri di clustering di un'istanza di Redis gestita di Azure dopo averlo creato. Se si usa RediSearch, è necessario il criterio cluster Enterprise e 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.

  8. Selezionare Avanti: Tag e ignorare.

  9. Selezionare Avanti: Revisiona e crea.

  10. Rivedere le impostazioni e selezionare Crea.

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

Creare un'istanza di Azure Cache per Redis

  1. Nel portale di Azure, cerca e seleziona Azure Cache per Redis.

  2. Nella pagina Cache Redis di Azure selezionare Crea>Cache Redis di Azure.

  3. Nella scheda Informazioni di base della pagina Nuova cache Redis configurare le impostazioni seguenti:

    • Sottoscrizione: selezionare la sottoscrizione da usare.
    • Gruppo di risorse: selezionare un gruppo di risorse oppure selezionare Crea nuovo e immettere un nuovo nome del gruppo di risorse. L'inserimento di tutte le risorse dell'app nello stesso gruppo di risorse consente di gestirle o eliminarle facilmente.
    • Nome: immettere un nome di cache univoco nell'area. Il nome deve:
      • Essere una stringa da 1 a 63 caratteri.
      • Contengono solo numeri, lettere e trattini.
      • Iniziare e terminare con un numero o una lettera.
      • Non contenere trattini consecutivi.
    • Area: selezionare un'area di Azure vicino ad altri servizi che usano la cache.
    • SKU cache: selezionare uno SKU per determinare le dimensioni, le prestazioni e le funzionalità disponibili per la cache.
    • Dimensioni cache: selezionare una dimensione della cache. Per altre informazioni, vedere la panoramica su Cache Redis di Azure.

    Screenshot che mostra la scheda Informazioni di base della pagina Nuova cache Redis.

  4. Selezionare la scheda Rete oppure Avanti: Rete.

  5. Nella scheda Rete selezionare un metodo di connettività da usare per la cache. L'endpoint privato è consigliato per la sicurezza. Se si seleziona Endpoint privato, selezionare Aggiungi endpoint privato e creare l'endpoint privato.

  6. Selezionare la scheda Avanzate oppure Avanti: Avanzate.

  7. Nel riquadro Avanzate configurare le opzioni seguenti:

    • Selezionare Autenticazione di Microsoft Entra o Autenticazione delle chiavi di accesso. L'autenticazione di Microsoft Entra è abilitata per impostazione predefinita.
    • Scegliere se abilitare la porta non TLS.
    • Per una cache Premium, è possibile configurare o disabilitare le zone di disponibilità. Non è possibile disabilitare le zone di disponibilità dopo la creazione della cache. Per una cache Standard, le zone di disponibilità vengono allocate automaticamente. Le zone di disponibilità non sono disponibili per lo SKU Basic.
    • Per una cache Premium, configurare le impostazioni per il numero di repliche, la funzionalità di clustering, il numero di partizioni, l'identità gestita assegnata dal sistema e la persistenza dei dati.

    L'immagine seguente mostra la scheda Avanzate per lo SKU Standard.

    Screenshot che mostra il riquadro Avanzate per una cache di uno SKU Standard.

    Importante

    Usare Microsoft Entra ID con identità gestite per autorizzare le richieste nella cache, se possibile. L'autorizzazione con l'ID e l'identità gestita di Microsoft Entra garantisce una maggiore sicurezza ed è più facile da usare rispetto all'autorizzazione della chiave di accesso condiviso. Per altre informazioni sull'uso di identità gestite con la cache, vedere Usare l'ID Microsoft Entra per l'autenticazione della cache.

  8. Facoltativamente, selezionare la scheda Tag o selezionare Avanti: Tag e immettere i nomi e i valori dei tag per classificare le risorse della cache.

  9. Selezionare Rivedi e crea e una volta superata la convalida selezionare Crea.

La nuova distribuzione della cache richiede alcuni minuti. È possibile monitorare lo stato di avanzamento della distribuzione nella pagina Cache Redis di Azure del portale. Quando lo stato della cache viene visualizzato 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 Informazioni generali 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 le chiavi di accesso di cache di Azure per Redis.

Configurare l'ambiente di lavoro

I passaggi seguenti illustrano come configurare l'ambiente di lavoro per l'app Java.

export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export REDIS_CACHE_PORT=10000
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
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 Informazioni generali dal menu Risorsa. Il nome host è nel formato <DNS name>.redis.cache.windows.net.

    Screenshot che mostra cache di Azure per Redis proprietà.

  • <your-client-id>: ID applicazione (client) della registrazione dell'applicazione Azure AD.

  • <your-client-secret>: segreto client della registrazione dell'applicazione Azure AD.

  • <your-tenant-id>: ID tenant di Azure Active Directory.

    Annotazioni

    Nell'esempio precedente viene utilizzata l'autenticazione del segreto del client. È anche possibile configurare la redis-authx-entraid libreria per l'uso di altri metodi di autenticazione, ad esempio identità gestita o certificato client modificando la EntraIDTokenAuthConfigBuilder configurazione nel codice.


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:

    Annotazioni

    Microsoft è entrato in una partnership con Redis, Inc. Nell'ambito di questa collaborazione, il supporto per l'autenticazione con ID Entra di Microsoft è stato spostato da Azure SDK alle estensioni Redis Entra ID. La nuova redis-authx-entraid libreria offre funzionalità di autenticazione avanzate ed è l'approccio consigliato per l'autenticazione con l'ID di Microsoft Entra con Cache Redis di Azure.

    <dependency>
        <groupId>redis.clients.authentication</groupId>
        <artifactId>redis-authx-entraid</artifactId>
        <version>0.1.1-beta2</version>
    </dependency>
    
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>6.0.0</version> 
    </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.DefaultAzureCredentialBuilder;
    import redis.clients.authentication.core.TokenAuthConfig;
    import redis.clients.authentication.entraid.AzureTokenAuthConfigBuilder;
    import redis.clients.jedis.DefaultJedisClientConfig;
    import redis.clients.jedis.HostAndPort;
    import redis.clients.jedis.UnifiedJedis;
    import redis.clients.jedis.authentication.AuthXManager;
    
    import java.util.Set;
    
    /**
    * Redis test with Microsoft Entra ID authentication using redis-authx-entraid
    * For more information about Redis authentication extensions, see:
    * https://redis.io/docs/latest/develop/clients/jedis/amr/
    *
    */
    public class App
    {
        public static void main( String[] args )
        {
            String REDIS_CACHE_HOSTNAME = System.getenv("REDIS_CACHE_HOSTNAME");
            int REDIS_PORT = Integer.parseInt(System.getenv().getOrDefault("REDIS_CACHE_PORT", "10000"));
            String SCOPES = "https://redis.azure.com/.default"; // The scope for Azure Cache for Redis
    
            // Build TokenAuthConfig for Microsoft Entra ID authentication
            TokenAuthConfig tokenAuthConfig = AzureTokenAuthConfigBuilder.builder()
                    .defaultAzureCredential(new DefaultAzureCredentialBuilder().build())
                    .scopes(Set.of(SCOPES))
                    .tokenRequestExecTimeoutInMs(2000)
                    .build();
    
            DefaultJedisClientConfig config = DefaultJedisClientConfig.builder()
                    .authXManager(new AuthXManager(tokenAuthConfig))
                    .ssl(true)
                    .build();
    
            UnifiedJedis jedis = new UnifiedJedis(
                    new HostAndPort(REDIS_CACHE_HOSTNAME, REDIS_PORT),
                    config);
    
            // Test the connection
            System.out.println(String.format("Database size is %d", jedis.dbSize()));
    
            // 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"));
    
            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 PING eseguiti anche i comandi.

  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 eseguito anche i PING comandi.

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!

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.