Domande frequenti sulla Cache Redis di AzureAzure Redis Cache FAQ

Risposte alle domande più comuni, modelli e procedure consigliate per la Cache Redis di Azure.Learn the answers to common questions, patterns, and best practices for Azure Redis Cache.

Cosa fare se non è disponibile una risposta alla domanda?What if my question isn't answered here?

Se la domanda non è elencata qui, invitiamo gli utenti a comunicarcela per consentirci di fornire il nostro aiuto.If your question isn't listed here, let us know and we'll help you find an answer.

  • È possibile pubblicare una domanda nei commenti alla fine del presente documento di FAQ e interagire con il team di Cache di Azure e altri membri della community in merito a questo articolo.You can post a question in the comments at the end of this FAQ and engage with the Azure Cache team and other community members about this article.
  • Per raggiungere un pubblico maggiore, è possibile pubblicare una domanda sul Forum MSDN di Cache di Azure e interagire con il team di Cache di Azure e altri membri della community.To reach a wider audience, you can post a question on the Azure Cache MSDN Forum and engage with the Azure Cache team and other members of the community.
  • Per effettuare una richiesta di funzionalità, è possibile inviare richieste e idee a Suggerimenti degli utenti su Cache Redis di Azure.If you want to make a feature request, you can submit your requests and ideas to Azure Redis Cache User Voice.
  • È possibile anche inviare un messaggio di posta elettronica all'indirizzo relativo al feedback esterno su Cache di Azure.You can also send an email to us at Azure Cache External Feedback.

Informazioni di base sulla Cache Redis di AzureAzure Redis Cache basics

Le domande frequenti di questa sezione illustrano alcuni dei concetti di base sulla Cache Redis di Azure.The FAQs in this section cover some of the basics of Azure Redis Cache.

Le domande frequenti riportate di seguito riguardano i concetti e le domande di base su Cache Redis di Azure e le risposte sono riportate nelle altre sezioni di domande frequenti.The following FAQs cover basic concepts and questions about Azure Redis Cache and are answered in one of the other FAQ sections.

Domande frequenti sulla pianificazionePlanning FAQs

Domande frequenti sullo sviluppoDevelopment FAQs

Domande frequenti sulla sicurezzaSecurity FAQs

Domande frequenti sulla produzioneProduction FAQs

Domande sul monitoraggio e sulla risoluzione dei problemiMonitoring and troubleshooting FAQs

Le domande frequenti riportate in questa sezione riguardano il monitoraggio e la risoluzione dei problemi più comuni.The FAQs in this section cover common monitoring and troubleshooting questions. Per altre informazioni sul monitoraggio e la risoluzione dei problemi relativi alle istanze di Cache Redis di Azure, vedere Come monitorare Cache Redis di Azure e Come risolvere i problemi di Cache Redis di Azure.For more information about monitoring and troubleshooting your Azure Redis Cache instances, see How to monitor Azure Redis Cache and How to troubleshoot Azure Redis Cache.

Domande frequenti sulle offerte di Cache precedentiPrior Cache offering FAQs

Informazioni su Cache Redis di AzureWhat is Azure Redis Cache?

Cache Redis di Azure si basa sulla popolare cache Redisopen source.Azure Redis Cache is based on the popular open-source Redis cache. Consente di accedere a una cache Redis sicura e dedicata, gestita da Microsoft e accessibile da qualsiasi applicazione in Azure.It gives you access to a secure, dedicated Redis cache, managed by Microsoft, and accessible from any application within Azure. Per una panoramica più dettagliata, vedere la pagina di prodotto di Cache Redis di Azure su Azure.com.For a more detailed overview, see the Azure Redis Cache product page on Azure.com.

Come si procede per iniziare a usare Cache Redis di Azure?How can I get started with Azure Redis Cache?

Esistono diversi modi per iniziare a usare Cache Redis di Azure.There are several ways you can get started with Azure Redis Cache.

Se non si dispone di un account Azure, è possibile:If you don't already have an Azure account, you can:

Quali offerte e dimensioni della Cache Redis è consigliabile usare?What Redis Cache offering and size should I use?

Ogni offerta della Cache Redis di Azure fornisce livelli diversi per le opzioni relative a dimensioni, larghezza di banda, disponibilità elevata e Contratto di servizio.Each Azure Redis Cache offering provides different levels of size, bandwidth, high availability, and SLA options.

Di seguito alcune considerazioni per la scelta di un'offerta cache.The following are considerations for choosing a Cache offering.

  • Memoria: i livelli Basic e Standard offrono 250 MB – 53 GB.Memory: The Basic and Standard tiers offer 250 MB – 53 GB. Il piano Premium offre fino a 530 GB.The Premium tier offers up to 530 GB. Per altre informazioni, vedere Prezzi di Cache Redis di Azure.For more information, see Azure Redis Cache Pricing.
  • Prestazioni della rete: in presenza di un carico di lavoro che richiede una velocità effettiva elevata, il livello Premium offre maggiore larghezza di banda rispetto a Standard o Basic.Network Performance: If you have a workload that requires high throughput, the Premium tier offers more bandwidth compared to Standard or Basic. Anche all'interno di ogni livello, a dimensioni più grandi della cache corrisponde maggiore larghezza di banda, a causa della macchina virtuale sottostante che ospita la cache.Also within each tier, larger size caches have more bandwidth because of the underlying VM that hosts the cache. Per altre informazioni, vedere la tabella seguente.See the following table for more information.
  • Velocità effettiva: il livello Premium offre la massima velocità effettiva disponibile.Throughput: The Premium tier offers the maximum available throughput. Se il server o il client della cache raggiunge i limiti della larghezza di banda, si potrebbero ricevere timeout sul lato client.If the cache server or client reaches the bandwidth limits, you may receive timeouts on the client side. Per altre informazioni, vedere la tabella seguente.For more information, see the following table.
  • Alta disponibilità/Contratto di servizio: Cache Redis di Azure garantisce la disponibilità di una cache di livello Standard o Premium per almeno il 99,9% del tempo.High Availability/SLA: Azure Redis Cache guarantees that a Standard/Premium cache is available at least 99.9% of the time. Per altre informazioni sul contratto di servizio, vedere Prezzi di Cache Redis di Azure.To learn more about our SLA, see Azure Redis Cache Pricing. Il contratto di servizio copre solo la connettività agli endpoint della cache.The SLA only covers connectivity to the Cache endpoints. Il contratto di servizio non offre copertura per la protezione dalla perdita di dati.The SLA does not cover protection from data loss. È consigliabile usare la funzionalità di persistenza dei dati Redis nel livello Premium per aumentare la resilienza contro la perdita di dati.We recommend using the Redis data persistence feature in the Premium tier to increase resiliency against data loss.
  • Persistenza dei dati Redis: il livello Premium consente la persistenza dei dati della cache in un account di archiviazione di Azure.Redis Data Persistence: The Premium tier allows you to persist the cache data in an Azure Storage account. In una cache Basic/Standard tutti i dati vengono archiviati solo in memoria.In a Basic/Standard cache, all the data is stored only in memory. In caso di problemi per l'infrastruttura sottostante esiste il rischio di una potenziale perdita di dati.If there are underlying infrastructure issues there can be potential data loss. È consigliabile usare la funzionalità di persistenza dei dati Redis nel livello Premium per aumentare la resilienza contro la perdita di dati.We recommend using the Redis data persistence feature in the Premium tier to increase resiliency against data loss. Cache Redis di Azure offre le opzioni RDB e AOF (presto disponibile) per la persistenza di Redis.Azure Redis Cache offers RDB and AOF (coming soon) options in Redis persistence. Per altre informazioni, vedere Come configurare la persistenza dei dati per una Cache Redis di Azure Premium.For more information, see How to configure persistence for a Premium Azure Redis Cache.
  • Redis Cluster: per creare delle cache di dimensioni superiori a 53 GB o partizionare i dati tra più nodi Redis, è possibile usare le funzionalità di clustering Redis, disponibili nel livello Premium.Redis Cluster: To create caches larger than 53 GB, or to shard data across multiple Redis nodes, you can use Redis clustering, which is available in the Premium tier. Ogni nodo è costituito da una coppia di cache primaria/di replica per la disponibilità elevata.Each node consists of a primary/replica cache pair for high availability. Per altre informazioni, vedere Come configurare il clustering per una Cache Redis di Azure Premium.For more information, see How to configure clustering for a Premium Azure Redis Cache.
  • Protezione avanzata e isolamento della rete: la distribuzione di Rete virtuale di Azure (VNET) offre maggiore sicurezza e isolamento per Cache Redis di Azure, nonché subnet, criteri di controllo di accesso e altre funzionalità per limitare ulteriormente l'accesso.Enhanced security and network isolation: Azure Virtual Network (VNET) deployment provides enhanced security and isolation for your Azure Redis Cache, as well as subnets, access control policies, and other features to further restrict access. Per altre informazioni, vedere Come configurare il supporto di una rete virtuale per una Cache Redis di Azure Premium.For more information, see How to configure Virtual Network support for a Premium Azure Redis Cache.
  • Configurare Redis: nei livelli Standard e Premium, è possibile configurare Redis per le notifiche di Keyspace.Configure Redis: In both the Standard and Premium tiers, you can configure Redis for Keyspace notifications.
  • Numero massimo di connessioni client: il livello Premium offre il numero massimo di client che possono connettersi a Redis, con un numero maggiore di connessioni per cache di dimensioni più grandi.Maximum number of client connections: The Premium tier offers the maximum number of clients that can connect to Redis, with a higher number of connections for larger sized caches. Per altre informazioni, vedere Prezzi di Cache Redis di Azure.For more information, see Azure Redis Cache pricing.
  • Core dedicato per il server Redis: nel livello Premium per tutte le dimensioni della cache è disponibile un core dedicato per Redis.Dedicated Core for Redis Server: In the Premium tier, all cache sizes have a dedicated core for Redis. Nei livelli Basic/Standard, per le dimensioni C1 e superiori è disponibile un core dedicato per il server Redis.In the Basic/Standard tiers, the C1 size and above have a dedicated core for Redis server.
  • Redis è a thread singolo , la disponibilità di più di due core non offre vantaggi ulteriori rispetto alla disponibilità di soli due core, ma in genere dimensioni di macchina virtuale maggiori hanno una larghezza di banda più elevata rispetto alle dimensioni minori.Redis is single-threaded so having more than two cores does not provide additional benefit over having just two cores, but larger VM sizes typically have more bandwidth than smaller sizes. Se il server o il client della cache raggiunge i limiti della larghezza di banda, si riceveranno timeout sul lato client.If the cache server or client reaches the bandwidth limits, then you receive timeouts on the client side.
  • Miglioramenti delle prestazioni: le cache nel livello Premium sono distribuite su hardware con processori più veloci e che offrono migliori prestazioni rispetto al livello Basic o Standard.Performance improvements: Caches in the Premium tier are deployed on hardware that has faster processors, giving better performance compared to the Basic or Standard tier. Le cache di livello Premium offrono una velocità effettiva più elevata e minori latenze.Premium tier Caches have higher throughput and lower latencies.

Prestazioni di Cache Redis di AzureAzure Redis Cache performance

La tabella seguente mostra i valori massimi per la larghezza di banda osservati durante il test di diverse dimensioni di cache Standard e Premium usando redis-benchmark.exe da una macchina virtuale IaaS nell'endpoint della Cache Redis di Azure.The following table shows the maximum bandwidth values observed while testing various sizes of Standard and Premium caches using redis-benchmark.exe from an Iaas VM against the Azure Redis Cache endpoint.

Nota

Questi valori non sono garantiti e che non è disponibile alcun contratto di servizio per questi numeri, che dovrebbero essere tuttavia tipici.These values are not guaranteed and there is no SLA for these numbers, but should be typical. È consigliabile testare l'applicazione per determinare le dimensioni di cache ottimali per l'applicazione specifica.You should load test your own application to determine the right cache size for your application.

Da questa tabella è possibile trarre le seguenti conclusioni:From this table, we can draw the following conclusions:

  • La velocità effettiva per cache con dimensioni simili è superiore nel Premium rispetto al livello Standard.Throughput for the caches that are the same size is higher in the Premium tier as compared to the Standard tier. Ad esempio, con una cache di 6 GB, la velocità effettiva di P1 è 180.000 RPS rispetto a 49.000 per C3.For example, with a 6 GB Cache, throughput of P1 is 180,000 RPS as compared to 49,000 for C3.
  • Con il clustering di Redis, la velocità effettiva aumenta in modo lineare man mano che aumenta il numero di partizioni (nodi) nel cluster.With Redis clustering, throughput increases linearly as you increase the number of shards (nodes) in the cluster. Ad esempio, se si crea un cluster P4 di 10 partizioni, la velocità effettiva disponibile sarà 400.000 *10 = 4 milioni di RPS.For example, if you create a P4 cluster of 10 shards, then the available throughput is 400,000 *10 = 4 Million RPS.
  • La velocità effettiva per dimensioni maggiori di chiave è superiore nel Premium rispetto al livello Standard.Throughput for bigger key sizes is higher in the Premium tier as compared to the Standard Tier.
Piano tariffarioPricing tier DimensioneSize Core CPUCPU cores Larghezza di banda disponibileAvailable bandwidth Dimensioni del valore di 1 KB1 KB value size
Dimensioni della cache livello StandardStandard cache sizes Megabit al secondo (Mb/s) / Megabyte al secondo (MB/s)Megabits per sec (Mb/s) / Megabytes per sec (MB/s) Richieste al secondo (RPS)Requests per second (RPS)
C0C0 250 MB250 MB CondivisoShared 5 / 0,6255 / 0.625 600600
C1C1 1 GB1 GB 11 100 / 12,5100 / 12.5 12,20012,200
C2C2 2,5 GB2.5 GB 22 200 / 25200 / 25 24,00024,000
C3C3 6 GB6 GB 44 400 / 50400 / 50 49,00049,000
C4C4 13 GB13 GB 22 500 / 62,5500 / 62.5 61,00061,000
C5C5 26 GB26 GB 44 1,000 / 1251,000 / 125 115,000115,000
C6C6 53 GB53 GB 88 2,000 / 2502,000 / 250 150.000150,000
Dimensioni della cache livello PremiumPremium cache sizes Core CPU per partizioneCPU cores per shard Megabit al secondo (Mb/s) / Megabyte al secondo (MB/s)Megabits per sec (Mb/s) / Megabytes per sec (MB/s) Richieste al secondo (RPS) per partizioneRequests per second (RPS), per shard
P1P1 6 GB6 GB 22 1,500 / 187.51,500 / 187.5 180,000180,000
P2P2 13 GB13 GB 44 3,000 / 3753,000 / 375 360,000360,000
P3P3 26 GB26 GB 44 3,000 / 3753,000 / 375 360,000360,000
P4P4 53 GB53 GB 88 6,000 / 7506,000 / 750 400.000400,000

Per istruzioni sul download degli strumenti Redis quali redis-benchmark.exe, vedere la sezione Come si eseguono i comandi Redis? .For instructions on downloading the Redis tools such as redis-benchmark.exe, see the How can I run Redis commands? section.

In quale area è consigliabile posizionare la cache?In what region should I locate my cache?

Per ottenere le prestazioni migliori e la latenza più bassa, posizionare la Cache Redis di Azure nella stessa area in cui si trova l'applicazione client della cache.For best performance and lowest latency, locate your Azure Redis Cache in the same region as your cache client application.

Quali sono i costi addebitati per Cache Redis di Azure?How am I billed for Azure Redis Cache?

I prezzi di Cache Redis di Azure sono indicati quiAzure Redis Cache pricing is here. come tariffa oraria.The pricing page lists pricing as an hourly rate. Le cache vengono fatturate a minuto dal momento in cui la cache viene creata fino a quando viene eliminata.Caches are billed on a per-minute basis from the time that the cache is created until the time that a cache is deleted. Non è disponibile alcuna opzione per interrompere o sospendere la fatturazione di una cache.There is no option for stopping or pausing the billing of a cache.

È possibile usare Cache Redis di Azure con Azure Government Cloud, Azure China Cloud o Microsoft Azure Germania?Can I use Azure Redis Cache with Azure Government Cloud, Azure China Cloud, or Microsoft Azure Germany?

Sì, è possibile usare Cache Redis di Azure con Azure Government Cloud, Azure China Cloud e Microsoft Azure Germania.Yes, Azure Redis Cache is available in Azure Government Cloud, Azure China Cloud, and Microsoft Azure Germany. Gli URL per l'accesso e la gestione di Cache Redis di Azure sono diversi in questi cloud da quelli del cloud pubblico di Azure.The URLs for accessing and managing Azure Redis Cache are different in these clouds compared with Azure Public Cloud.

CloudCloud Suffisso DNS per RedisDns Suffix for Redis
PubblicoPublic .redis.cache.windows.net.redis.cache.windows.net
US GovUS Gov .redis.cache.usgovcloudapi.net.redis.cache.usgovcloudapi.net
GermaniaGermany .redis.cache.cloudapi.de.redis.cache.cloudapi.de
CinaChina .redis.cache.chinacloudapi.cn.redis.cache.chinacloudapi.cn

Per ulteriori informazioni sulle considerazioni relative all’uso di Cache Redis di Azure con altri cloud, vedere i collegamenti seguenti.For more information on considerations when using Azure Redis Cache with other clouds, see the following links.

Per informazioni sull'uso di Cache Redis di Azure con PowerShell in Azure Government Cloud, Azure China Cloud e Microsoft Azure Germania, vedere Come connettersi ad altri cloud - Powershell con Cache Redis di Azure.For information on using Azure Redis Cache with PowerShell in Azure Government Cloud, Azure China Cloud, and Microsoft Azure Germany, see How to connect to other clouds - Azure Redis Cache PowerShell.

Qual è la funzione delle opzioni di configurazione StackExchange.Redis?What do the StackExchange.Redis configuration options do?

StackExchange.Redis include diverse opzioni.StackExchange.Redis has many options. Questa sezione illustra alcune impostazioni comuni.This section talks about some of the common settings. Per informazioni più dettagliate sulle opzioni StackExchange.Redis, vedere la pagina relativa alla configurazione di StackExchange.Redis.For more detailed information about StackExchange.Redis options, see StackExchange.Redis configuration.

Opzioni configurazioneConfigurationOptions DescrizioneDescription RaccomandazioneRecommendation
AbortOnConnectFailAbortOnConnectFail Se impostata su true, la connessione non verrà ristabilita dopo un errore di rete.When set to true, the connection will not reconnect after a network failure. Impostare su false, per permettere a StackExchange.Redis di riconnettersi automaticamente.Set to false and let StackExchange.Redis reconnect automatically.
ConnectRetryConnectRetry Numero di nuovi tentativi di connessione durante la connessione iniziale.The number of times to repeat connection attempts during initial connect. Per indicazioni, vedere le note seguenti.See the following notes for guidance.
ConnectTimeoutConnectTimeout Timeout in millisecondi per le operazioni di connessione.Timeout in ms for connect operations. Per indicazioni, vedere le note seguenti.See the following notes for guidance.

Nella maggior parte dei casi sono sufficienti i valori predefiniti del client.Usually the default values of the client are sufficient. È possibile ottimizzare le opzioni in base al carico di lavoro specifico.You can fine-tune the options based on your workload.

  • TentativiRetries
    • Per ConnectRetry e ConnectTimeout è in genere consigliabile ottenere rapidamente un errore e riprovare,For ConnectRetry and ConnectTimeout, the general guidance is to fail fast and retry again. in base al carico di lavoro specifico e al tempo mediamente necessario per il rilascio di un comando Redis da parte del client e la ricezione di una risposta.This guidance is based on your workload and how much time on average it takes for your client to issue a Redis command and receive a response.
    • Permettere la connessione automatica di StackExchange.Redis invece di controllare lo stato di connessione ed eseguire manualmente la riconnessione.Let StackExchange.Redis automatically reconnect instead of checking connection status and reconnecting yourself. Evitare di usare la proprietà ConnectionMultiplexer.IsConnected.Avoid using the ConnectionMultiplexer.IsConnected property.
    • In alcuni casi è possibile che si verifichi un problema che genera nuovi tentativi a catena, senza recupero.Snowballing - sometimes you may run into an issue where you are retrying and the retries snowball and never recovers. In questo caso è consigliabile prendere in considerazione l'uso di un algoritmo di nuovi tentativi con backoff esponenziale, come illustrato in Indicazioni generali per la ripetizione di tentativi pubblicato dal gruppo Microsoft Patterns & Practices.If snowballing occurs, you should consider using an exponential backoff retry algorithm as described in Retry general guidance published by the Microsoft Patterns & Practices group.
  • Valori di timeoutTimeout values
    • Esaminare il carico di lavoro e impostare valori adeguati.Consider your workload and set the values accordingly. Se si archiviano valori di grandi dimensioni, impostare il timeout su un valore più elevato.If you are storing large values, set the timeout to a higher value.
    • Impostare AbortOnConnectFail su false per permettere a StackExchange.Redis di riconnettersi.Set AbortOnConnectFail to false and let StackExchange.Redis reconnect for you.
    • Usare una singola istanza ConnectionMultiplexer per l'applicazione.Use a single ConnectionMultiplexer instance for the application. È possibile usare un valore LazyConnection per creare una singola istanza restituita da una proprietà Connection, come illustrato in Connettersi alla cache mediante la classe ConnectionMultiplexer.You can use a LazyConnection to create a single instance that is returned by a Connection property, as shown in Connect to the cache using the ConnectionMultiplexer class.
    • Impostare la proprietà ConnectionMultiplexer.ClientName su un nome univoco dell'istanza dell'app per finalità di diagnostica.Set the ConnectionMultiplexer.ClientName property to an app instance unique name for diagnostic purposes.
    • Usare più istanze di ConnectionMultiplexer per carichi di lavoro personalizzati.Use multiple ConnectionMultiplexer instances for custom workloads.
      • È possibile seguire questo modello se l'applicazione include carichi variabili.You can follow this model if you have varying load in your application. Ad esempio:For example:
      • È possibile avere un multiplexer per la gestione di chiavi di grandi dimensioni.You can have one multiplexer for dealing with large keys.
      • È possibile avere un multiplexer per la gestione di chiavi di piccole dimensioni.You can have one multiplexer for dealing with small keys.
      • È possibile impostare valori diversi per i timeout di connessione e la logica di ripetizione dei tentativi per ogni ConnectionMultiplexer usato.You can set different values for connection timeouts and retry logic for each ConnectionMultiplexer that you use.
      • Impostare la proprietà ClientName in ogni multiplexer per semplificare la diagnostica.Set the ClientName property on each multiplexer to help with diagnostics.
      • Si otterrà probabilmente una latenza semplificata per ogni ConnectionMultiplexer.This guidance may lead to more streamlined latency per ConnectionMultiplexer.

Quali client della cache Redis è possibile usare?What Redis cache clients can I use?

Uno dei principali vantaggi di Redis è la presenza di numerosi client che supportano linguaggi di sviluppo diversi.One of the great things about Redis is that there are many clients supporting many different development languages. Per un elenco aggiornato dei client, vedere l'articolo relativo ai client Redis.For a current list of clients, see Redis clients. Per esercitazioni su diversi linguaggi e client, vedere Come usare Cache Redis di Azure e fare clic sul linguaggio desiderato dallo strumento di selezione del linguaggio all'inizio dell'articolo.For tutorials that cover several different languages and clients, see How to use Azure Redis Cache and click the desired language from the language switcher at the top of the article.

Per connettersi a un'istanza Cache Redis di Azure, è necessario specificare il nome host, le porte e le chiavi della cache.To connect to an Azure Redis Cache instance, cache clients need the host name, ports, and keys of the cache. Alcuni client possono fare riferimento a questi elementi usando nomi leggermente diversi.Some clients may refer to these items by slightly different names. È possibile recuperare queste informazioni nel portale di Azure o usando strumenti da riga di comando come l'interfaccia della riga di comando di Azure.You can retrieve this information in the Azure portal or by using command-line tools such as Azure CLI.

Recuperare il nome dell'host, le porte e le chiavi di accesso usando il portale di AzureRetrieve host name, ports, and access keys using the Azure Portal

Per recuperare il nome dell'host, le porte e le chiavi di accesso usando il portale di Azure, passare alla cache nel portale di Azure e scegliere Chiavi di accesso e Proprietà dal menu Risorsa.To retrieve host name, ports, and access keys using the Azure Portal, browse to your cache in the Azure portal and click Access keys and Properties in the Resource menu.

Impostazioni della Cache Redis

Recuperare il nome dell'host, le porte e le chiavi di accesso usando l'interfaccia della riga di comando di AzureRetrieve host name, ports, and access keys using Azure CLI

Per recuperare il nome dell'host e le porte usando l'interfaccia della riga di comando di Azure 2.0, è possibile chiamare az redis show e per recuperare le chiavi è possibile chiamare az redis list-keys.To retrieve the host name and ports using Azure CLI 2.0 you can call az redis show, and to retrieve the keys you can call az redis list-keys. Lo script seguente chiama questi due comandi e restituisce il nome dell'host, le porte e le chiavi alla console.The following script calls these two commands and echos the hostname, ports, and keys to the console.

#/bin/bash

# Retrieve the hostname, ports, and keys for contosoCache located in contosoGroup

# Retrieve the hostname and ports for an Azure Redis Cache instance
redis=($(az redis show --name contosoCache --resource-group contosoGroup --query [hostName,enableNonSslPort,port,sslPort] --output tsv))

# Retrieve the keys for an Azure Redis Cache instance
keys=($(az redis list-keys --name contosoCache --resource-group contosoGroup --query [primaryKey,secondaryKey] --output tsv))

# Display the retrieved hostname, keys, and ports
echo "Hostname:" ${redis[0]}
echo "Non SSL Port:" ${redis[2]}
echo "Non SSL Port Enabled:" ${redis[1]}
echo "SSL Port:" ${redis[3]}
echo "Primary Key:" ${keys[0]}
echo "Secondary Key:" ${keys[1]}

Per altre informazioni su questo script, vedere Get the hostname, ports, and keys for Azure Redis Cache (Recuperare il nome dell'host, le porte e le chiavi per Cache Redis di Azure).For more information about this script, see Get the hostname, ports, and keys for Azure Redis Cache. Per altre informazioni sull'interfaccia della riga di comando di Azure 2.0, vedere Install Azure CLI 2.0 (Installare l'interfaccia della riga di comando di Azure 2.0) e Get started with Azure CLI 2.0 (Introduzione all'interfaccia della riga di comando di Azure 2.0).For more information on Azure CLI 2.0, see Install Azure CLI 2.0 and Get started with Azure CLI 2.0.

Esiste un emulatore locale per la cache Redis di Azure?Is there a local emulator for Azure Redis Cache?

Non esiste un emulatore locale per Cache Redis di Azure, ma è possibile eseguire la versione MSOpenTech di redis-server.exe dagli strumenti della riga di comando Redis sul computer locale e connettersi per ottenere un'esperienza simile a un emulatore cache locale, come illustrato nell'esempio seguente:There is no local emulator for Azure Redis Cache, but you can run the MSOpenTech version of redis-server.exe from the Redis command-line tools on your local machine and connect to it to get a similar experience to a local cache emulator, as shown in the following example:

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;
        }
    }

Facoltativamente, è possibile configurare un file redis.conf in modo che le impostazioni siano più simili alle impostazioni della cache predefinite per Cache Redis di Azure online.You can optionally configure a redis.conf file to more closely match the default cache settings for your online Azure Redis Cache if desired.

Come si eseguono i comandi Redis?How can I run Redis commands?

È possibile usare i comandi elencati tra i comandi di Redis a eccezione dei comandi elencati in Comandi di Redis non supportati in Cache Redis di Azure.You can use any of the commands listed at Redis commands except for the commands listed at Redis commands not supported in Azure Redis Cache. Per eseguire i comandi di Redis sono disponibili diverse opzioni.You have several options to run Redis commands.

  • Se si ha una cache Standard o Premium, è possibile eseguire i comandi di Redis usando la Console Redis.If you have a Standard or Premium cache, you can run Redis commands using the Redis Console. La conole consente di eseguire in modo sicuro i comandi di Redis nel portale di Azure.The Redis console provides a secure way to run Redis commands in the Azure portal.
  • È anche possibile usare gli strumenti da riga di comando di Redis.You can also use the Redis command-line tools. A questo scopo, eseguire la procedura seguente:To use them, perform the following steps:
  • Scaricare gli strumenti da riga di comando Redis.Download the Redis command-line tools.
  • Connettersi alla cache usando redis-cli.exe.Connect to the cache using redis-cli.exe. Passare l'endpoint della cache mediante l'opzione -h e la chiave mediante -a, come illustrato nell'esempio seguente:Pass in the cache endpoint using the -h switch and the key using -a as shown in the following example:
  • redis-cli -h <your cache="" name=""> .redis.cache.windows.net -a <key>

Nota

Gli strumenti da riga di comando Redis non funzionano con la porta SSL, ma è possibile usare un'utilità come stunnel per connettere in modo sicuro gli strumenti alla porta SSL seguendo le istruzioni disponibili nel post di blog Announcing ASP.NET Session State Provider for Redis Preview Release (Annuncio del provider di stato della sessione ASP.NET per la versione di anteprima di Redis).The Redis command-line tools do not work with the SSL port, but you can use a utility such as stunnel to securely connect the tools to the SSL port by following the directions in the Announcing ASP.NET Session State Provider for Redis Preview Release blog post.

Perché la Cache Redis di Azure non offre un riferimento alla libreria di classi MSDN, analogamente ad altri servizi di Azure?Why doesn't Azure Redis Cache have an MSDN class library reference like some of the other Azure services?

Cache Redis di Microsoft Azure si basa sulla nota cache Redis open source, a cui è possibile accedere da un'ampia gamma di client Redis disponibili per numerosi linguaggi di programmazione.Microsoft Azure Redis Cache is based on the popular open source Redis Cache and can be accessed by a wide variety of Redis clients for many programming languages. Ogni client ha un'API specifica che effettua chiamate all'istanza della Cache Redis usando i comandi Redis.Each client has its own API that makes calls to the Redis cache instance using Redis commands.

Poiché ogni client è diverso, non è disponibile alcun riferimento di classe centralizzato su MSDN. Ogni client offre documentazione di riferimento specifica.Because each client is different, there is not one centralized class reference on MSDN, and each client maintains its own reference documentation. Oltre alla documentazione di riferimento, sono disponibili alcune esercitazioni che illustrano come iniziare a usare la Cache Redis di Azure Redis con linguaggi e client di cache diversi.In addition to the reference documentation, there are several tutorials showing how to get started with Azure Redis Cache using different languages and cache clients. Per accedere a queste esercitazioni, vedere Come usare Cache Redis di Azure e fare clic sul linguaggio desiderato dallo strumento di selezione del linguaggio all'inizio dell'articolo.To access these tutorials, see How to use Azure Redis Cache and click the desired language from the language switcher at the top of the article.

Posso utilizzare Cache Redis di Azure come una cache di sessione PHP?Can I use Azure Redis Cache as a PHP session cache?

Sì, per utilizzare 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.Yes, to use Azure Redis Cache as a PHP session cache, specify the connection string to your Azure Redis Cache instance in session.save_path.

Importante

Quando si utilizza Cache Redis di Azure come una cache di sessione PHP, è necessario codificare in URL la chiave di sicurezza utilizzata per connettersi alla cache, come illustrato nell'esempio seguente:When using Azure Redis Cache as a PHP session cache, you must URL encode the security key used to connect to the cache, as shown in the following example:

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, può essere restituita un'eccezione con un messaggio simile al seguente: Failed to parse session.save_pathIf the key is not URL encoded, you may receive an exception with a message like: Failed to parse session.save_path

Per ulteriori informazioni sull'utilizzo di Cache Redis come cache di sessione PHP con il client PhpRedis, vedere Gestore della sessione PHP.For more information about using Redis Cache as a PHP session cache with the PhpRedis client, see PHP Session handler.

Cosa sono i database Redis?What are Redis databases?

I database Redis sono semplicemente una separazione logica dei dati nella stessa istanza Redis.Redis Databases are just a logical separation of data within the same Redis instance. 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.The cache memory is shared between all the databases and actual memory consumption of a given database depends on the keys/values stored in that database. Ad esempio una cache C6 ha 53 GB di memoria.For example a C6 cache has 53 GB of memory. È possibile scegliere di inserire tutti i 53 GB in un unico database o dividerli tra più database.You can choose to put all 53 GB into one database or you can split it up between multiple databases.

Nota

Quando si usa una Cache Redis di Azure Premium con il clustering abilitato, è disponibile solo il database 0.When using a Premium Azure Redis Cache with clustering enabled, only database 0 is available. Questa limitazione è intrinseca di Redis e non specifica di Cache Redis di Azure.This limitation is an intrinsic Redis limitation and is not specific to Azure Redis Cache. Per altre informazioni, vedere È necessario apportare modifiche all'applicazione client per usare il clustering?For more information, see Do I need to make any changes to my client application to use clustering?

Quando è consigliabile abilitare la porta non SSL per la connessione a Redis?When should I enable the non-SSL port for connecting to Redis?

Il server Redis non offre il supporto nativo per SSL, ma tale supporto è disponibile nella Cache Redis di Azure.Redis server does not natively support SSL, but Azure Redis Cache does. Se ci si connette alla Cache Redis di Azure e il client supporta SSL, ad esempio StackExchange.Redis, è consigliabile usare SSL.If you are connecting to Azure Redis Cache and your client supports SSL, like StackExchange.Redis, then you should use SSL.

Nota

Per le nuove istanze della Cache Redis di Azure la porta non SSL è disabilitata per impostazione predefinita.The non-SSL port is disabled by default for new Azure Redis Cache instances. Se il client non supporta SSL, sarà necessario abilitare la porta non SSL seguendo le istruzioni disponibili nella sezione Porte di accesso dell'articolo Configurare una cache in Cache Redis di Azure.If your client does not support SSL, then you must enable the non-SSL port by following the directions in the Access ports section of the Configure a cache in Azure Redis Cache article.

Strumenti di Redis come redis-cli non funzionano con la porta SSL, ma è possibile usare un'utilità come stunnel per connettere in modo sicuro gli strumenti alla porta SSL seguendo le istruzioni disponibili nel post di blog Announcing ASP.NET Session State Provider for Redis Preview Release (Annuncio del provider di stato della sessione ASP.NET per la versione di anteprima di Redis).Redis tools such as redis-cli do not work with the SSL port, but you can use a utility such as stunnel to securely connect the tools to the SSL port by following the directions in the Announcing ASP.NET Session State Provider for Redis Preview Release blog post.

Per istruzioni sul download degli strumenti Redis, vedere la sezione Come si eseguono i comandi Redis? .For instructions on downloading the Redis tools, see the How can I run Redis commands? section.

Quali sono alcune procedure consigliate per la produzione?What are some production best practices?

Procedure consigliate di StackExchange.RedisStackExchange.Redis best practices

  • Impostare AbortConnect su false, quindi consentire a ConnectionMultiplexer di eseguire la riconnessione automatica.Set AbortConnect to false, then let the ConnectionMultiplexer reconnect automatically. Per informazioni dettagliate, vedere qui.See here for details.
  • Riutilizzare ConnectionMultiplexer: non creare una nuova istanza per ogni richiesta.Reuse the ConnectionMultiplexer - do not create a new one for each request. È fortemente consigliato usare il modello Lazy<ConnectionMultiplexer> mostrato qui.The Lazy<ConnectionMultiplexer> pattern shown here is recommended.
  • Redis funziona meglio con valori inferiori, quindi considerare di suddividere i dati più grandi in più chiavi.Redis works best with smaller values, so consider chopping up bigger data into multiple keys. In questa discussione di Redis, 100 kb viene considerato grande.In this Redis discussion, 100kb is considered large. Leggere in questo articolo per un problema di esempio che può essere causato da valori di grandi dimensioni.Read this article for an example problem that can be caused by large values.
  • Configurare le impostazioni ThreadPool per evitare timeout.Configure your ThreadPool settings to avoid timeouts.
  • Usare almeno il connectTimeout predefinito di 5 secondi.Use at least the default connectTimeout of 5 seconds. Questo intevallo fornirebbe a StackExchange.Redis tempo sufficiente per ristabilire la connessione, in caso di un problema di rete.This interval would give StackExchange.Redis sufficient time to re-establish the connection, in case of a network blip.
  • Tenere presente i costi delle prestazioni associati a diverse operazioni in esecuzione.Be aware of the performance costs associated with different operations you are running. Ad esempio, il comando KEYS è un'operazione O(n) e deve essere evitato.For instance, the KEYS command is an O(n) operation and should be avoided. Il sito redis.io fornisce i dettagli sulla complessità del tempo per ogni operazione supportata.The redis.io site has details around the time complexity for each operation that it supports. Fare clic su ogni comando per visualizzare la complessità di ogni operazione.Click each command to see the complexity for each operation.

Configurazione e concettiConfiguration and concepts

  • Usare il livello Premium o Standard per i sistemi di produzione.Use Standard or Premium Tier for Production systems. Il livello Basic è un sistema a nodo singolo senza replica dei dati e senza contratto di servizio.The Basic Tier is a single node system with no data replication and no SLA. Usare almeno una cache di livello C1.Also, use at least a C1 cache. Le cache di livello C0 sono usate solitamente in scenari semplici di sviluppo e test.C0 caches are typically used for simple dev/test scenarios.
  • Tenere presente che Redis è un archivio dati in memoria .Remember that Redis is an In-Memory data store. Leggere questo articolo per acquisire familiarità con gli scenari in cui può verificarsi una perdita di dati.Read this article so that you are aware of scenarios where data loss can occur.
  • Sviluppare il sistema in modo che possa gestire i problemi di connessione causati da failover e applicazione di patch.Develop your system such that it can handle connection blips due to patching and failover.

Test delle prestazioniPerformance testing

  • Usare innanzitutto redis-benchmark.exe per acquisire familiarità con le velocità effettive possibili prima di scrivere il proprio test delle prestazioni.Start by using redis-benchmark.exe to get a feel for possible throughput before writing your own perf tests. Il benchmark redis-benchmark non supporta SSL, pertanto è necessario abilitare la porta non SSL tramite il portale di Azure prima di eseguire il test.Because redis-benchmark does not support SSL, you must enable the Non-SSL port through the Azure portal before you run the test. Per esempi, vedere In che modo è possibile valutare e testare le prestazioni della cache?For examples, see How can I benchmark and test the performance of my cache?
  • La macchina virtuale client usata per il test deve trovarsi nella stessa area dell'istanza della cache Redis.The client VM used for testing should be in the same region as your Redis cache instance.
  • È consigliabile usare macchine virtuali della serie Dv2 per il client poiché dispongono di hardware migliore e dovrebbero quindi dare risultati più precisi.We recommend using Dv2 VM Series for your client as they have better hardware and should give the best results.
  • Assicurarsi che la macchina virtuale client disponga almeno della capacità di elaborazione e della larghezza di banda della cache che si sta testando.Make sure your client VM you choose has at least as much computing and bandwidth capability as the cache you are testing.
  • Se si usa Windows, abilitare VRSS sul computer client.Enable VRSS on the client machine if you are on Windows. Per informazioni dettagliate, vedere qui.See here for details.
  • Le istanze del livello Premium di Redis hanno migliore latenza di rete e velocità effettiva, poiché sono in esecuzione su hardware migliori in CPU e rete.Premium tier Redis instances have better network latency and throughput because they are running on better hardware for both CPU and Network.

Che cosa occorre prendere in considerazione quando si usano i comandi Redis comuni?What are some of the considerations when using common Redis commands?

  • È consigliabile non eseguire determinati comandi Redis che richiedono molto tempo per il completamento se non si comprende l'impatto di tali comandi.You should not run certain Redis commands which take a long time to complete, without understanding the impact of these commands.
    • Ad esempio, non eseguire il comando KEYS in produzione, poiché la restituzione di un valore potrebbe richiedere molto tempo, in base al numero delle chiavi.For example, do not run the KEYS command in production as it could take a long time to return depending on the number of keys. Redis è un server a thread singolo ed elabora un comando alla volta.Redis is a single-threaded server and it processes commands one at a time. Eventuali comandi emessi dopo KEYS verranno elaborati solo dopo l'elaborazione del comando KEYS.If you have other commands issued after KEYS, they will not be processed until Redis processes the KEYS command. Il sito redis.io fornisce i dettagli sulla complessità del tempo per ogni operazione supportata.The redis.io site has details around the time complexity for each operation that it supports. Fare clic su ogni comando per visualizzare la complessità di ogni operazione.Click each command to see the complexity for each operation.
  • È consigliabile usare coppie chiave-valore di piccole o di grandi dimensioni?Key sizes - should I use small key/values or large key/values? In genere, dipende dallo scenario.In general, it depends on the scenario. Se lo scenario richiede chiavi di dimensioni maggiori, sarà possibile modificare il valore di ConnectionTimeout e dei nuovi tentativi e regolare la logica di ripetizione dei tentativi.If your scenario requires larger keys, you can adjust the ConnectionTimeout and retry values and adjust your retry logic. Dal punto di vista del server Redis, è stato osservato che valori più piccoli permettono prestazioni migliori.From a Redis server perspective, smaller values are observed to have better performance.
  • Ciò non significa che non sia possibile archiviare valori di dimensioni maggiori in Redis. Occorre tenere presenti le considerazioni seguenti.These considerations don't mean that you can't store larger values in Redis; you must be aware of the following considerations. Le latenze saranno più elevate.Latencies will be higher. Se sono presenti un set di dati più grande e un set di dati più piccolo, sarà possibile usare più istanze di ConnectionMultiplexer, ognuna delle quali configurata con un diverso set di valori di timeout e di nuovi tentativi, come illustrato nella sezione Qual è la funzione delle opzioni di configurazione StackExchange.Redis? precedente.If you have one set of data that is larger and one that is smaller, you can use multiple ConnectionMultiplexer instances, each configured with a different set of timeout and retry values, as described in the previous What do the StackExchange.Redis configuration options do section.

In che modo è possibile valutare e testare le prestazioni della cache?How can I benchmark and test the performance of my cache?

  • Abilitare la diagnostica della cache per monitorare l'integrità della cache.Enable cache diagnostics so you can monitor the health of your cache. È possibile visualizzare le metriche nel portale di Azure, nonché scaricarle e analizzarle usando gli strumenti preferiti.You can view the metrics in the Azure portal and you can also download and review them using the tools of your choice.
  • È possibile usare redis-benchmark.exe per eseguire test di carico del server Redis.You can use redis-benchmark.exe to load test your Redis server.
  • Assicurarsi che il client del test di carico e la Cache Redis si trovino nella stessa area.Ensure that the load testing client and the Redis cache are in the same region.
  • Usare redis-cli.exe e monitorare la cache usando il comando INFO.Use redis-cli.exe and monitor the cache using the INFO command.
  • Se il carico provoca la frammentazione elevata della memoria, è consigliabile passare a dimensioni di cache maggiori.If your load is causing high memory fragmentation, you should scale up to a larger cache size.
  • Per istruzioni sul download degli strumenti Redis, vedere la sezione Come si eseguono i comandi Redis? .For instructions on downloading the Redis tools, see the How can I run Redis commands? section.

I comandi seguenti rappresentano un esempio di uso di redis-benchmark.exe.The following commands provide an example of using redis-benchmark.exe. Per risultati accurati, eseguire questi comandi da una macchina virtuale situata nella stessa area della cache.For accurate results, run these commands from a VM in the same region as your cache.

  • Testare le richieste SET in pipeline usando un payload 1 kTest Pipelined SET requests using a 1k payload

    redis-benchmark.exe -h **yourcache**.redis.cache.windows.net -a **yourAccesskey** -t SET -n 1000000 -d 1024 -P 50

  • Testare le richieste GET in pipeline usando un payload 1 k.Test Pipelined GET requests using a 1k payload. NOTA: eseguire il test SET mostrato in alto prima di popolare la cacheNOTE: Run the SET test shown above first to populate cache

    redis-benchmark.exe -h **yourcache**.redis.cache.windows.net -a **yourAccesskey** -t GET -n 1000000 -d 1024 -P 50

Informazioni importanti sulla crescita del pool di threadImportant details about ThreadPool growth

L'oggetto ThreadPool CLR ha due tipi di thread, i thread di lavoro (WORKER) e i thread IOCP (porta di completamento I/O).The CLR ThreadPool has two types of threads - "Worker" and "I/O Completion Port" (aka IOCP) threads.

  • I thread di lavoro vengono usati per operazioni come l'elaborazione dei metodi Task.Run(…) o ThreadPool.QueueUserWorkItem(…).Worker threads are used when for things like processing Task.Run(…) or ThreadPool.QueueUserWorkItem(…) methods. Questi thread vengono usati anche da vari componenti CLR quando il lavoro deve essere eseguito in un thread in background.These threads are also used by various components in the CLR when work needs to happen on a background thread.
  • I thread IOCP vengono usati quando si verificano I/O asincroni, ad esempio, durante la lettura dalla rete.IOCP threads are used when asynchronous IO happens (e.g. reading from the network).

Il pool di thread fornisce nuovi thread di lavoro o thread di completamento I/O su richiesta, senza alcuna limitazione, fino a quando non viene raggiunta l'impostazione minima per ogni tipo di thread.The thread pool provides new worker threads or I/O completion threads on demand (without any throttling) until it reaches the "Minimum" setting for each type of thread. Per impostazione predefinita, il numero minimo di thread corrisponde al numero di processori in un sistema.By default, the minimum number of threads is set to the number of processors on a system.

Quando il numero di thread esistenti, o occupati, raggiunge il minimo, l'oggetto ThreadPool limita la frequenza di inserimento dei nuovi thread a uno ogni 500 millisecondi.Once the number of existing (busy) threads hits the "minimum" number of threads, the ThreadPool will throttle the rate at which it injects new threads to one thread per 500 milliseconds. Solitamente, se il sistema riceve un picco di lavoro che necessita di un thread IOCP, il lavoro viene elaborato molto rapidamente.Typically, if your system gets a burst of work needing an IOCP thread, it will process that work very quickly. Tuttavia, se il picco di lavoro è superiore all'impostazione minima configurata, ci sarà un ritardo nell'elaborazione di una parte del lavoro mentre l'oggetto ThreadPool attende che si verifichi una delle condizioni seguenti.However, if the burst of work is more than the configured "Minimum" setting, there will be some delay in processing some of the work as the ThreadPool waits for one of two things to happen.

  1. Un thread esistente diventa disponibile per elaborare il lavoro.An existing thread becomes free to process the work.
  2. Nessun thread esistente diventa disponibile per 500 ms e viene creato un nuovo thread.No existing thread becomes free for 500ms, so a new thread is created.

In sostanza, ciò significa che quando il numero dei thread occupati è maggiore del numero minimo di thread, è probabile che si verifichi un ritardo di 500 ms prima che il traffico di rete venga elaborato dall'applicazione.Basically, it means that when the number of Busy threads is greater than Min threads, you are likely paying a 500ms delay before network traffic is processed by the application. È anche importante notare che quando un thread esistente rimane inattivo per più di 15 secondi viene pulito e il ciclo di crescita e riduzione si ripete.Also, it is important to note that when an existing thread stays idle for longer than 15 seconds (based on what I remember), it will be cleaned up and this cycle of growth and shrinkage can repeat.

Se si osserva un messaggio di errore di esempio da StackExchange.Redis, build 1.0.450 o versione successiva, si noterà che ora le statistiche dell'oggetto ThreadPool vengono stampate. Di seguito sono riportati i dettagli relativi a IOCP e WORKER.If we look at an example error message from StackExchange.Redis (build 1.0.450 or later), you will see that it now prints ThreadPool statistics (see IOCP and WORKER details below).

System.TimeoutException: Timeout performing GET MyKey, inst: 2, mgr: Inactive,
queue: 6, qu: 0, qs: 6, qc: 0, wr: 0, wq: 0, in: 0, ar: 0,
IOCP: (Busy=6,Free=994,Min=4,Max=1000),
WORKER: (Busy=3,Free=997,Min=4,Max=1000)

Nell'esempio precedente sono presenti 6 thread IOCP occupati e il sistema è configurato per consentire un minimo di 4 thread.In the previous example, you can see that for IOCP thread there are 6 busy threads and the system is configured to allow 4 minimum threads. In questo caso si verificheranno probabilmente due ritardi di 500 ms, perché 6 > 4.In this case, the client would have likely seen two 500 ms delays because 6 > 4.

Si noti che StackExchange.Redis può raggiungere il timeout se la crescita dei thread IOCP o WORKER viene limitata.Note that StackExchange.Redis can hit timeouts if growth of either IOCP or WORKER threads gets throttled.

RaccomandazioneRecommendation

È consigliabile impostare il numero minimo dei thread IOCP e WORKER su un valore maggiore di quello predefinito.Given this information, we strongly recommend that customers set the minimum configuration value for IOCP and WORKER threads to something larger than the default value. Non è possibile fornire indicazioni universali su questo valore, perché il valore corretto per un'applicazione potrebbe essere troppo alto o troppo basso per un'altra.We can't give one-size-fits-all guidance on what this value should be because the right value for one application will be too high/low for another application. Questa impostazione può anche influire sulle prestazioni di altre parti di applicazioni complesse. È quindi necessario che venga regolata in base alle esigenze specifiche del cliente.This setting can also impact the performance of other parts of complicated applications, so each customer needs to fine-tune this setting to their specific needs. Un buon punto di partenza è 200 o 300, da verificare e modificare a seconda delle necessità.A good starting place is 200 or 300, then test and tweak as needed.

Come configurare questa impostazione:How to configure this setting:

  • In ASP.NET usare l'impostazione di configurazione "minIoThreads" nell'elemento di configurazione <processModel> in web.config. Se l'esecuzione avviene all'interno di Siti Web di Azure, questa impostazione non viene esposta attraverso le opzioni di configurazione.In ASP.NET, use the "minIoThreads" configuration setting under the <processModel> configuration element in web.config. If you are running inside of Azure WebSites, this setting is not exposed through the configuration options. Dovrebbe tuttavia essere possibile configurarla a livello di codice, come indicato di seguito, dal metodo Application_Start in global.asax.cs.However, you should still be able to configure this setting programmatically (see below) from your Application_Start method in global.asax.cs.

    Nota

    Il valore specificato in questo elemento di configurazione è un'impostazione per core.The value specified in this configuration element is a per-core setting. Ad esempio, se si dispone di un computer a 4 memorie centrali e si desidera che l'impostazione minIoThreads raggiunga 200 in fase di esecuzione, occorre usare <processModel minIoThreads="50"/>.For example, if you have a 4 core machine and want your minIOThreads setting to be 200 at runtime, you would use <processModel minIoThreads="50"/>.

  • Al di fuori di ASP.NET, usare l'API ThreadPool.SetMinThreads(...) .Outside of ASP.NET, use the ThreadPool.SetMinThreads(…) API.

Abilitare il server Garbage Collection in modo da ottenere una velocità effettiva maggiore sul client quando si usa StackExchange.RedisEnable server GC to get more throughput on the client when using StackExchange.Redis

L'abilitazione del server Garbage Collection consente di ottimizzare il client e fornire velocità effettiva e prestazioni migliori quando si usa StackExchange.Redis.Enabling server GC can optimize the client and provide better performance and throughput when using StackExchange.Redis. Per altre informazioni sul server Garbage Collection e sulla relativa abilitazione, vedere gli articoli seguenti:For more information on server GC and how to enable it, see the following articles:

Considerazioni sulle prestazioni per le connessioniPerformance considerations around connections

Ogni piano tariffario presenta diversi limiti di connessioni client, memoria e larghezza di banda.Each pricing tier has different limits for client connections, memory, and bandwidth. Mentre ogni dimensione della cache consente fino a un determinato numero di connessioni, ogni connessione a Redis dispone di un sovraccarico associato.While each size of cache allows up to a certain number of connections, each connection to Redis has overhead associated with it. Un esempio di questo sovraccarico potrebbe essere l'utilizzo della CPU e della memoria a causa della crittografia TLS/SSL.An example of such overhead would be CPU and memory usage as a result of TLS/SSL encryption. Il limite massimo di connessioni per una dimensione della cache specificata presuppone una cache leggermente caricata.The maximum connection limit for a given cache size assumes a lightly loaded cache. Se il carico del sovraccarico della connessione sommato al carico delle operazioni client supera la capacità del sistema, la cache può riscontrare problemi di capacità anche se il limite della connessione non è stato superato in base alla dimensione della cache corrente.If load from connection overhead plus load from client operations exceeds capacity for the system, the cache can experience capacity issues even if you have not exceeded the connection limit for the current cache size.

Per ulteriori informazioni sui diversi limiti di connessione per ogni livello, vedere Prezzi di Cache Redis di Azure.For more information about the different connections limits for each tier, see Azure Redis Cache pricing. Per ulteriori informazioni sulle connessioni e altre configurazioni predefinite, vedere Configurazione predefinita del server Redis.For more information about connections and other default configurations, see Default Redis server configuration.

In che modo si esegue il monitoraggio dell'integrità e delle impostazioni della cache?How do I monitor the health and performance of my cache?

Le istanze della Cache Redis di Microsoft Azure possono essere monitorate nel portale di Azure.Microsoft Azure Redis Cache instances can be monitored in the Azure portal. È possibile visualizzare le metriche, aggiungere i grafici delle metriche alla Schermata iniziale, personalizzare l'intervallo di data e ora per il monitoraggio dei grafici, aggiungere e rimuovere metriche dai grafici e impostare avvisi per le situazioni in cui vengono soddisfatte determinate condizioni.You can view metrics, pin metrics charts to the Startboard, customize the date and time range of monitoring charts, add and remove metrics from the charts, and set alerts when certain conditions are met. Per altre informazioni, vedere Come monitorare Cache Redis di Azure.For more information, see Monitor Azure Redis Cache.

Il Menu risorse della Cache Redis contiene inoltre numerosi strumenti per monitorare e risolvere i problemi delle cache.The Redis Cache Resource menu also contains several tools for monitoring and troubleshooting your caches.

  • Diagnostica e risoluzione dei problemi fornisce informazioni sui problemi comuni e sulle strategie per risolverli.Diagnose and solve problems provides information about common issues and strategies for resolving them.
  • Integrità risorsa esamina la risorsa e indica se viene eseguita nel modo previsto.Resource health watches your resource and tells you if it's running as expected. Per altre informazioni sul servizio Integrità risorse di Azure, vedere l'articolo sulla Panoramica su Integrità risorse di Azure.For more information about the Azure Resource health service, see Azure Resource health overview.
  • Nuova richiesta di supporto fornisce opzioni per aprire una richiesta di supporto per la cache.New support request provides options to open a support request for your cache.

Questi strumenti permettono di monitorare l'integrità delle istanze della Cache Redis di Azure e semplificano la gestione delle applicazioni di memorizzazione nella cache.These tools enable you to monitor the health of your Azure Redis Cache instances and help you manage your caching applications. Per altre informazioni, vedere la sezione "Supporto e impostazioni di risoluzione dei problemi" in Come configurare Cache Redis di Azure.For more information, see the "Support & troubleshooting settings" section of How to configure Azure Redis Cache.

Perché vengono visualizzati timeout?Why am I seeing timeouts?

I timeout si verificano nel client usato per comunicare con Redis.Timeouts happen in the client that you use to talk to Redis. Quando un comando viene inviato al server Redis, il comando viene accodato e il server Redis preleva il comando e lo esegue.When a command is sent to the Redis server, the command is queued up and Redis server eventually picks up the command and executes it. È tuttavia possibile che durante questo processo si verifichi il timeout del client e in tale caso viene generata un'eccezione sul lato del chiamante.However the client can time out during this process and if it does an exception is raised on the calling side. Per altre informazioni sulla risoluzione dei problemi di timeout, vedere Risoluzione dei problemi lato client ed Eccezioni di timeout StackExchange.Redis.For more information on troubleshooting timeout issues, see Client-side troubleshooting and StackExchange.Redis timeout exceptions.

Perché il client è stato disconnesso dalla cache?Why was my client disconnected from the cache?

Di seguito sono riportati alcuni motivi comuni per la disconnessione di una cache.The following are some common reason for a cache disconnect.

  • Cause lato clientClient-side causes
    • L'applicazione client è stata ridistribuita.The client application was redeployed.
    • L'applicazione client ha eseguito un'operazione di ridimensionamento.The client application performed a scaling operation.
      • Nel caso dei servizi cloud o delle app Web, ciò potrebbe essere dovuto alla scalabilità automatica.In the case of Cloud Services or Web Apps, this may be due to auto-scaling.
    • Il livello di rete sul lato client è stato modificato.The networking layer on the client side changed.
    • Si sono verificati errori temporanei nel client o nei nodi di rete tra il client e il server.Transient errors occurred in the client or in the network nodes between the client and the server.
    • Sono stati raggiunti i limiti della soglia relativa alla larghezza di banda.The bandwidth threshold limits were reached.
    • Il completamento di operazioni associate alla CPU ha richiesto troppo tempo.CPU bound operations took too long to complete.
  • Cause lato serverServer-side causes
    • Nell'offerta Standard per la cache il servizio Cache Redis di Azure ha avviato un failover dal nodo primario al nodo secondario.On the standard cache offering, the Azure Redis Cache service initiated a fail-over from the primary node to the secondary node.
    • Azure stava applicando patch all'istanza in cui è stata distribuita la cache.Azure was patching the instance where the cache was deployed
      • Ciò può riguardare aggiornamenti del server Redis o manutenzione generale delle VM.This can be for Redis server updates or general VM maintenance.

Qual è l'offerta di Cache di Azure più adatta alle mie esigenze?Which Azure Cache offering is right for me?

Importante

Come da annuncio dello scorso anno, il Servizio cache gestita di Azure e il servizio Cache nel ruolo di Azure sono stati ritirati il 30 novembre 2016.As per last year's announcement, Azure Managed Cache Service and Azure In-Role Cache service have been retired on November 30, 2016. È consigliabile usare Cache Redis di Azure.Our recommendation is to use Azure Redis Cache. Per informazioni sulla migrazione, vedere Eseguire la migrazione dal Servizio cache gestita alla Cache Redis di Azure.For information on migrating, see Migrate from Managed Cache Service to Azure Redis Cache.

Cache Redis di AzureAzure Redis Cache

Cache Redis di Azure è in genere disponibile per dimensioni fino a 53 GB e prevede un contratto di servizio con disponibilità del 99,9%.Azure Redis Cache is Generally Available in sizes up to 53 GB and has an availability SLA of 99.9%. Il nuovo livello Premium offre dimensioni fino a 530 GB, oltre al supporto per clustering, reti virtuali e persistenza, con Contratti di servizio del 99,9%.The new premium tier offers sizes up to 530 GB and support for clustering, VNET, and persistence, with a 99.9% SLA.

Cache Redis di Azure permette ai clienti di usare una cache Redis protetta, dedicata e gestita da Microsoft.Azure Redis Cache gives customers the ability to use a secure, dedicated Redis cache, managed by Microsoft. Con questa offerta è possibile sfruttare i vantaggi delle numerose funzionalità avanzate e dell'ecosistema forniti da Redis, insieme all'hosting e al monitoraggio affidabili offerti da Microsoft.With this offer, you get to leverage the rich feature set and ecosystem provided by Redis, and reliable hosting and monitoring from Microsoft.

A differenza delle cache tradizionali in grado di gestire solo coppie chiave-valore, Redis è nota per i tipi di dati ad alte prestazioni.Unlike traditional caches which deal only with key-value pairs, Redis is popular for its highly performant data types. Redis supporta inoltre l'esecuzione di operazioni atomiche su questi tipi, ad esempio l'aggiunta a una stringa; l'aumento del valore in un hash; il push in un elenco; il calcolo di intersezione, unione e differenza per un set; oppure il recupero del membro con priorità più elevata in un set ordinato.Redis also supports running atomic operations on these types, like appending to a string; incrementing the value in a hash; pushing to a list; computing set intersection, union and difference; or getting the member with highest ranking in a sorted set. Altre funzionalità includono il supporto di transazioni, pubblicazione/sottoscrizione, script Lua, chiavi con un ciclo di vita limitato e impostazioni di configurazione per permettere a Redis un comportamento più simile a una cache tradizionale.Other features include support for transactions, pub/sub, Lua scripting, keys with a limited time-to-live, and configuration settings to make Redis behave more like a traditional cache.

Un altro aspetto chiave del successo di Redis è l'ecosistema open source integro e dinamico che si è sviluppato attorno,Another key aspect to Redis success is the healthy, vibrant open source ecosystem built around it. come dimostrato dal variegato set di client Redis disponibili per più linguaggi.This is reflected in the diverse set of Redis clients available across multiple languages. Questo ecosistema e quest'ampia gamma di client consentono l'uso di Cache Redis di Azure da parte di quasi tutti i carichi di lavoro generati in Azure.This ecosystem and wide range of clients allow Azure Redis Cache to be used by nearly any workload you would build inside of Azure.

Per altre informazioni sulle operazioni preliminari con Cache Redis di Azure, vedere Come usare Cache Redis di Azure e la documentazione di Cache Redis di Azure.For more information about getting started with Azure Redis Cache, see How to Use Azure Redis Cache and Azure Redis Cache documentation.

Servizio cache gestitaManaged Cache service

Il Servizio cache gestita è stato ritirato il 30 novembre 2016.Managed Cache service was retired November 30, 2016.

Per visualizzare la documentazione archiviata, vedere Documentazione archiviata di Servizio cache gestita di Azure.To view archived documentation, see Archived Managed Cache Service Documentation.

Cache nel ruoloIn-Role Cache

Il servizio Cache nel ruolo è stato ritirato il 30 novembre 2016.In-Role Cache was retired November 30, 2016.

Per visualizzare la documentazione archiviata, vedere Documentazione archiviata di Cache nel ruolo.To view archived documentation, see Archived In-Role Cache Documentation.