Share via


Impostazioni di configurazione dei ruoli in Cache nel ruolo (ServiceConfiguration.cscfg)

Importante

Microsoft consiglia tutti i nuovi sviluppi di usare Cache Redis di Azure. Per la documentazione e le indicazioni correnti sulla scelta di un'offerta di Cache di Azure, vedere Quale offerta di Cache di Azure è adatta per l'utente?

In questo argomento vengono descritte le impostazioni della cache Microsoft Azure disponibili nel file ServiceConfiguration.cscfg. Queste impostazioni specificano la configurazione della memorizzazione nella cache nel ruolo di destinazione. La finestra di dialogo delle proprietà del ruolo in Visual Studio configura automaticamente queste impostazioni quando si abilita la memorizzazione nella cache. Le informazioni di riferimento contenute in questo argomento sono particolarmente utili per le distribuzioni di servizi cloud non Visual Studio che vogliono sfruttare la memorizzazione nella cache.

ServiceConfiguration.cscfg

Nell'esempio seguente viene illustrato un file ServiceConfiguration.cscfg di base in cui è stata configurata la memorizzazione nella cache. In questo esempio sono presenti due cache denominate: default e NamedCache1. Questo può essere usato come esempio delle seguenti sezioni di riferimento.

<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="WindowsAzure1" xmlns="https://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="3" osVersion="*" schemaVersion="2012-10.1.8">
  <Role name="WebRole1">
    <Instances count="2" />
    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.NamedCaches" value="{&quot;caches&quot;:[{&quot;name&quot;:&quot;default&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:0},&quot;expiration&quot;:{&quot;defaultTTL&quot;:10,&quot;isExpirable&quot;:true,&quot;type&quot;:1},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:false}},&quot;secondaries&quot;:0},{&quot;name&quot;:&quot;NamedCache1&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:-1},&quot;expiration&quot;:{&quot;defaultTTL&quot;:20,&quot;isExpirable&quot;:true,&quot;type&quot;:2},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:true}},&quot;secondaries&quot;:1}]}" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel" value="1" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="30" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString" value="UseDevelopmentStorage=true" />
    </ConfigurationSettings>
  </Role>
</ServiceConfiguration>

NamedCaches

L'impostazione Microsoft.WindowsAzure.Plugins.Caching.NamedCaches specifica tutte le cache e le relative impostazioni di configurazione. Queste informazioni sono organizzate mediante la sintassi JSON. Le virgolette doppie presenti nella sintassi sono sostituite dal riferimento all'entità carattere &quot;. Il seguente valore di NamedCaches proviene dal file ServiceConfiguration.cscfg sopra illustrato.

{&quot;caches&quot;:[{&quot;name&quot;:&quot;default&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:0},&quot;expiration&quot;:{&quot;defaultTTL&quot;:10,&quot;isExpirable&quot;:true,&quot;type&quot;:1},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:false}},&quot;secondaries&quot;:0},{&quot;name&quot;:&quot;NamedCache1&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:-1},&quot;expiration&quot;:{&quot;defaultTTL&quot;:20,&quot;isExpirable&quot;:true,&quot;type&quot;:2},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:true}},&quot;secondaries&quot;:1}]}

Il seguente esempio illustra la stessa impostazione dell'esempio precedente, ma l'output è formattato e i simboli &quot; sono sostituiti dalle virgolette doppie. Questo esempio fornisce una migliore comprensione della sintassi, ma non deve essere usato nel file ServiceConfiguration.cscfg.

{
    "caches": [
        {
            "name": "default",
            "policy": {
                "eviction": {"type": 0},
                "expiration": {"defaultTTL": 10, "isExpirable": true, "type": 1},
                "serverNotification": {"isEnabled": false}
            },
            "secondaries": 0
        },
        {
            "name": "NamedCache1",
            "policy": {
                "eviction": {"type": -1},
                "expiration": {"defaultTTL": 20, "isExpirable": true, "type": 2},
                "serverNotification": {"isEnabled": true}
            },
           "secondaries": 1
        }
    ]
}

Tutte le cache denominate vengono definite all'interno di un campo cache di primo livello. Ogni cache denominata è definita dai tre campi seguenti.

Campo cache Descrizione

nome

Specifica il nome della cache.

criteri

Criteri per la rimozione, la scadenza e le impostazioni di notifica.

repliche secondarie

Definisce il numero di copie di backup necessarie per la disponibilità elevata. Al momento il valore deve essere 0 o 1. Il valore 0 disabilita la disponibilità elevata.

Il campo dei criteri è costituito dalle proprietà seguenti.

Campo policy Descrizione

Sfratto

Contiene un singolo campo, tipo, che specifica il tipo di rimozione. I valori possibili sono 0 (utilizzati meno di recente) e -1 (nessuno). Il valore 0 abilita la rimozione degli elementi usati meno di recente. Il valore -1 disabilita la rimozione.

expiration

Contiene tre campi che descrivono i criteri di scadenza.

  1. defaultTTL: numero di minuti in cui gli elementi rimangono nella cache prima della scadenza.

  2. isExpirable: valore di true abilita la scadenza e il valore false disabilita la scadenza.

  3. type: tipo di scadenza. Il valore 0 disabilita la scadenza. Il valore 1 specifica la scadenza assoluta. Il valore 2 specifica la scadenza estendibile. Con una scadenza di questo tipo, qualsiasi operazione eseguita sull'elemento nella cache determina la reimpostazione della data di scadenza.

Importante

Nel tipo è impostato su (disabilitato), isExpirable deve essere impostato 0 su faslee defaultTTL deve essere impostato su 0.

serverNotification

Contiene un singolo campo , isEnabled, che specifica se le notifiche sono abilitate per questa cache.

ClientDiagnosticLevel

Specifica il livello iniziale della raccolta di diagnostica per la memorizzazione nella cache. Questa impostazione è specifica delle informazioni di diagnostica per i ruoli client di una cache. Fornisce informazioni di diagnostica relative all'uso della cache dal punto di vista del client. Tenere presente che nella topologia con risorse condivise è possibile usare ClientDiagnosticLevel e DiagnosticLevel nella stessa configurazione di ruolo.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />

DiagnosticLevel

Specifica il livello iniziale della raccolta di diagnostica per la memorizzazione nella cache. Questa impostazione è specifica per le informazioni di diagnostica sui ruoli che ospitano la memorizzazione nella cache.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel" value="1" />

CacheSizePercentage

Percentuale di memoria disponibile da usare per la memorizzazione nella cache. Per le topologie con risorse condivise, è necessario che il valore sia un numero intero senza il segno di percentuale, ad esempio 30.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="30" />

Per le topologie basate su ruolo dedicato, è necessario che questa stringa rimanga vuota.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="" />

ConfigStoreConnectionString

Account di archiviazione di Azure da usare per la memorizzazione nella cache. Questo account di archiviazione viene usato per contenere i dati relativi al cluster di cache ed è accessibile da tutte le macchine virtuali che lo compongono. Tenere presente che il seguente esempio usa l'account di archiviazione dello sviluppatore per l'esecuzione del debug locale. Prima di procedere con la distribuzione nel cloud, è necessario impostare un account di archiviazione effettivo.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString" value="UseDevelopmentStorage=true" />