Compartir a través de


Opciones de configuración de roles de Caché en rol (ServiceConfiguration.cscfg)

Importante

Microsoft recomienda todos los nuevos desarrollos que usen Azure Redis Cache. Para obtener documentación actual e instrucciones sobre cómo elegir una oferta de Azure Cache, consulte ¿Qué oferta de Azure Cache es adecuada para mí?

En este tema se describe la configuración de caché de Microsoft Azure disponible en el archivo ServiceConfiguration.cscfg. Esta configuración especifica la configuración del almacenamiento en caché en el rol de destino. El cuadro de diálogo de propiedades de rol de Visual Studio configura automáticamente estas opciones al habilitar el almacenamiento en caché. La información de referencia de este tema es más útil para las implementaciones de servicios en la nube que no son Visual Studio que desean aprovechar el almacenamiento en caché.

ServiceConfiguration.cscfg

En el ejemplo siguiente se muestra un archivo ServiceConfiguration.cscfg básico que tiene configurado el almacenamiento en caché. Este ejemplo tiene dos cachés con nombre, default y NamedCache1. Esto puede servir de ejemplo de las secciones de referencia siguientes.

<?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>

CachésConNombre

La opción Microsoft.WindowsAzure.Plugins.Caching.NamedCaches especifica todas las cachés y sus opciones de configuración. Esta información se organiza mediante una sintaxis JSON. A las comillas dobles de la sintaxis se les aplica la referencia a la entidad de carácter con escape &quot;. El valor de NamedCaches siguiente se toma del archivo ServiceConfiguration.cscfg completo anterior.

{&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}]}

El ejemplo siguiente muestra la misma configuración del ejemplo anterior, pero el resultado tiene formato y los símbolos &quot; se sustituyen por comillas dobles. El fin de esto es comprender mejor la sintaxis, pero no debe usarse en el archivo 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
        }
    ]
}

Todas las cachés con nombre se definen dentro de un campo de caché de nivel superior. Cada caché con nombre se define mediante los tres campos siguientes.

Campo de caché Descripción

name

Especifica el nombre de la memoria caché.

directiva

Directiva para la configuración de expulsión, expiración y notificación.

Secundarios

Define el número de copias de seguridad que se mantendrán para alta disponibilidad. En este momento, el valor debe ser 0 o 1. Un valor de 0 deshabilita la alta disponibilidad.

El campo de directiva consta de las siguientes propiedades.

Campo de directiva Descripción

Desalojo

Contiene un único campo, tipo, que especifica el tipo de expulsión. Los valores posibles son 0 (LRU) y -1 (ninguna). Un valor de 0 habilita la expulsión para los elementos usados menos recientemente. Un valor de -1 deshabilita la expulsión.

expiration

Contiene tres campos que describen la directiva de expiración.

  1. defaultTTL: número de minutos que los elementos permanecen en la memoria caché antes de expirar.

  2. isExpirable: un valor de true habilita la expiración y un valor de false deshabilita la expiración.

  3. type: tipo de expiración. Un valor de 0 deshabilita la expiración. Un valor de 1 especifica la expiración absoluta. Un valor de 2 especifica la expiración variable. Con la expiración variable, cada acción con el elemento en la caché restablece el plazo de expiración.

Importante

En type se establece 0 en (disabled), isExpirable debe establecerse fasleen y defaultTTL debe establecerse en 0.

serverNotification

Contiene un único campo, isEnabled, que especifica si las notificaciones están habilitadas para esta caché.

ClientDiagnosticLevel

Especifica el nivel inicial de recopilación de diagnóstico para el almacenamiento en caché. Esta opción es específica para la información de diagnóstico de los roles que son clientes de una caché. Proporciona información de diagnóstico sobre el uso de la caché desde la perspectiva del cliente. Tenga en cuenta que en la topología colocalizada, es posible usar tanto ClientDiagnosticLevel como DiagnosticLevel en la misma configuración de roles.

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

DiagnosticLevel

Especifica el nivel inicial de recopilación de diagnóstico para el almacenamiento en caché. Esta configuración es específica de la información de diagnóstico sobre los roles que hospedan el almacenamiento en caché.

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

CacheSizePercentage

Porcentaje de memoria disponible que se va a usar para el almacenamiento en caché. Para las topologías colocalizadas, debe ser un número entero sin un símbolo de porcentaje, por ejemplo, 30.

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

Para las topologías dedicadas, debe ser una cadena vacía.

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

ConfigStoreConnectionString

La cuenta de almacenamiento de Azure que se va a usar para el almacenamiento en caché. Este almacenamiento se usa para conservar datos de configuración sobre el clúster de caché y es accesible desde todas las máquinas virtuales que componen el clúster de caché. Tenga en cuenta que el ejemplo siguiente usa el almacenamiento del desarrollador para la depuración local. Antes de implementar en la nube, debe cambiarlo por una cuenta de almacenamiento real.

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