Domande frequenti sullo sviluppo in Cache Redis di Azure

Questo articolo include le risposte alle domande più comuni su come sviluppare per Cache Redis di Azure.

Come si procede per iniziare a usare Cache Redis di Azure?

Per iniziare a usare Cache Redis di Azure, è possibile scegliere tra varie opzioni.

Se non si dispone di un account Azure, è possibile:

Qual è la funzione delle opzioni di configurazione StackExchange.Redis?

StackExchange.Redis include diverse opzioni. Questa sezione illustra alcune impostazioni comuni. Per informazioni più dettagliate sulle opzioni StackExchange.Redis, vedere la pagina relativa alla configurazione di StackExchange.Redis.

Opzioni configurazione Descrizione Elemento consigliato
AbortOnConnectFail Se impostata su true, la connessione non viene ristabilita dopo un errore di rete. Impostare su false, per permettere a StackExchange.Redis di riconnettersi automaticamente.
ConnectRetry Numero di nuovi tentativi di connessione durante la connessione iniziale. Per indicazioni, vedere le note seguenti.
ConnectTimeout Timeout in millisecondi per le operazioni di connessione. Per indicazioni, vedere le note seguenti.

Nella maggior parte dei casi sono sufficienti i valori predefiniti del client. È possibile ottimizzare le opzioni in base al carico di lavoro specifico.

Nuovi tentativi

  • Per ConnectRetry e ConnectTimeout è in genere consigliabile fallire e rispondere immediatamente agli errori e riprovare, in base al carico di lavoro specifico e al tempo mediamente necessario per l'invio di un comando Redis da parte del client e la ricezione di una risposta.
  • Permettere la connessione automatica di StackExchange.Redis invece di controllare lo stato di connessione ed eseguire manualmente la riconnessione. Evitare di usare la proprietà ConnectionMultiplexer.IsConnected.
  • In alcuni casi potrebbe verificarsi un problema che genera nuovi tentativi a catena, senza possibilità di ripristino. In questo caso provare a usare un algoritmo di ripetizione con backoff esponenziale, come illustrato nell'articolo sulle indicazioni generali per la ripetizione di tentativi pubblicato dal gruppo Microsoft Patterns & Practices.

Valori di timeout

  • Esaminare il carico di lavoro e impostare i valori adeguati. Se si archiviano valori di grandi dimensioni, impostare il timeout su un valore più elevato.

  • Impostare AbortOnConnectFail su false per permettere a StackExchange.Redis di riconnettersi.

  • Usare una sola istanza ConnectionMultiplexer di lunga durata anziché creare una nuova connessione per ogni richiesta. Per un esempio di come gestire una connessione, vedere la classe RedisConnection in Connettersi alla cache con RedisConnection.

  • Impostare la proprietà ConnectionMultiplexer.ClientName su un nome univoco dell'istanza dell'app per finalità di diagnostica.

  • Usare più istanze di ConnectionMultiplexer per carichi di lavoro personalizzati.

    È possibile seguire questo modello se l'applicazione include carichi variabili. Ad esempio:

    • È possibile avere un multiplexer per la gestione di chiavi di grandi dimensioni.
    • È possibile avere un multiplexer per la gestione di chiavi di piccole dimensioni.
    • È possibile impostare valori diversi per i timeout di connessione e la logica di ripetizione dei tentativi per ogni ConnectionMultiplexer in uso.
    • Impostare la proprietà ClientName in ogni multiplexer per semplificare la diagnostica.

    Seguendo queste indicazioni, si otterrà probabilmente una latenza semplificata per ogni ConnectionMultiplexer.

Quali client di Cache Redis di Azure è possibile usare?

Uno dei principali vantaggi di Redis è la presenza di numerosi client che supportano linguaggi di sviluppo diversi. Per un elenco aggiornato dei client, vedere l'articolo relativo ai client Redis. Per esercitazioni relative a diversi linguaggi e client, vedere Come usare Cache Redis di Azure.

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

Per connettere il server della cache di Azure per Redis, il client della cache deve avere il nome host della cache, le porte e una chiave di accesso. 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 passare alla cache.
    2. Nel menu del servizio, in Impostazioni, selezionare Autenticazione.
    3. Nel pannello 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 di cache di Azure per Redis.

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

    1. Nel portale di Azure passare 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 valore del nome host è in formato <DNS name>.redis.cache.windows.net.
    4. Per Porte, selezionare l'icona Copia per copiare i valori della porta.

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

Esiste un emulatore locale per Cache Redis di Azure?

Non esiste alcun emulatore locale per Cache Redis di Azure. È tuttavia possibile eseguire una copia di Redis della community nel computer locale e connettersi per ottenere un'esperienza simile a un emulatore di cache locale, come illustrato nell'esempio seguente:

private static Lazy<ConnectionMultiplexer>
    lazyConnection = new Lazy<ConnectionMultiplexer> (() =>
    {
        // Connect to a locally running instance of Redis to simulate
        // a local cache emulator experience.
        return ConnectionMultiplexer.Connect("127.0.0.1:6379");
    });

public static ConnectionMultiplexer Connection
{
    get
    {
        return lazyConnection.Value;
    }
}

Redis viene eseguito in modalità nativa in Linux, ma è anche possibile usare un sottosistema Windows per Linux per eseguire Redis in un computer Windows. Per altre informazioni, vedere Installare Redis in Windows. Facoltativamente, è possibile configurare un file redis.conf in modo che le impostazioni siano più simili alle impostazioni della cache predefinite per la cache di Azure per Redis online.

Come si eseguono i comandi Redis?

È possibile usare i comandi inclusi nell'elenco dei comandi di Redis eccetto quelli elencati in Comandi di Redis non supportati in Cache Redis di Azure. Per eseguire i comandi di Redis sono disponibili diverse opzioni.

Se si ha una cache Standard o Premium, è possibile eseguire i comandi di Redis usando la Console Redis. La conole consente di eseguire in modo sicuro i comandi di Redis nel portale di Azure.

È anche possibile usare gli strumenti da riga di comando di Redis. Per informazioni, vedere Usare lo strumento da riga di comando Redis con la cache di Azure per Redis

Perché per Cache Redis di Azure non sono disponibili informazioni di riferimento sulle librerie di classi in MSDN?

Cache Redis di Microsoft Azure si basa su Redis, il noto archivio dati in memoria open source. È possibile usare un'ampia gamma di client Redis per molti linguaggi di programmazione. Ogni client include un'API specifica che effettua chiamate all'istanza della Cache Redis usando i comandi Redis.

Dal momento che ogni client è diverso, non è possibile trovare informazioni di riferimento centralizzate sulle classi in MSDN. Ogni client gestisce la propria documentazione di riferimento. Oltre alla documentazione di riferimento, sono disponibili alcune esercitazioni che spiegano come iniziare a usare Cache Redis di Azure Redis con linguaggi e client di cache diversi. Per accedere a queste esercitazioni, vedere Come usare Cache Redis di Azure e articoli di pari livello nel sommario.

È possibile usare Cache Redis di Azure come una cache di sessione PHP?

Sì, per usare Cache Redis di Azure come una cache di sessione PHP, specificare la stringa di connessione all'istanza di Cache Redis di Azure in session.save_path.

Importante

Quando si usa Cache Redis di Azure come cache di sessione PHP, è necessario codificare nell'URL la chiave di sicurezza usata per connettersi alla cache, come illustrato nell'esempio seguente:

session.save_path = "tcp://mycache.redis.cache.windows.net:6379?auth=<url encoded primary or secondary key here>";

Se la chiave non è codificata in URL, si potrebbe ricevere un'eccezione con un messaggio simile al seguente: Failed to parse session.save_path

Per altre informazioni sull'uso di Cache Redis come cache di sessione PHP con il client PhpRedis, vedere PHP Session handler (Gestore della sessione PHP).

Cosa sono i database Redis?

I database Redis sono semplicemente una separazione logica dei dati nella stessa istanza Redis. La memoria cache viene condivisa tra tutti i database e il consumo effettivo della memoria di un determinato database dipende da chiavi/valori memorizzati nel database. Ad esempio una cache C6 ha 53 GB di memoria e una P5 ne ha 120 GB. È possibile scegliere di inserire tutti i 53/120 GB in un unico database o dividerli tra più database.

Nota

Quando si usa un'istanza di Cache Redis di Azure Premium con il clustering abilitato, è disponibile solo il database 0. Questa limitazione è intrinseca di Redis e non specifica della cache di Azure per Redis.

Informazioni su altre domande frequenti su Cache Redis di Azure.