缓存角色的配置设置 (ServiceConfiguration.cscfg)

角色中缓存角色的配置设置 (ServiceConfiguration.cscfg)

更新时间: 2015年8月

note备注
有关为你的应用程序选择合适的 Azure 缓存产品/服务的指导,请参阅 Which Azure Cache offering is right for me?

本主题介绍 ServiceConfiguration.cscfg 文件中的可用 Microsoft Azure Cache 设置。这些设置指定了目标角色上的 缓存 的配置。当你启用 缓存 时,Visual Studio 中的角色属性对话框会自动配置这些设置。本主题中的参考信息对于要利用 缓存 的非 Visual Studio 云服务部署最有用。

以下示例演示了配置有 缓存 的基本 ServiceConfiguration.cscfg 文件。此示例包含两个命名缓存:defaultNamedCache1。这可以作为后面的参考部分的示例。

<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="WindowsAzure1" xmlns="http://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>

Microsoft.WindowsAzure.Plugins.Caching.NamedCaches 设置指定了所有缓存及其配置设置。此信息是使用 JSON 语法来组织的。在该语法中,双引号是使用 &quot; 字符实体引用来进行转义的。下面的 NamedCaches 值取自上述完整的 ServiceConfiguration.cscfg 文件。

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

下面的示例显示与前面的示例相同的设置,但对输出进行了格式设置,并将 &quot; 符号替换为双引号。显示此示例是为了更好地理解语法,不应在 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
        }
    ]
}

所有命名缓存均在顶级 caches 字段中定义。每个命名缓存由以下三个字段定义。

 

“缓存”字段 说明

name

指定缓存的名称。

policy

逐出、过期和通知设置的策略。

secondaries

定义实现高可用性所需维护的备份副本数。此时,值必须为 01。值 0 禁用高可用性。

policy 字段包括以下属性。

 

“策略”字段 说明

eviction

包含单个字段 type,该字段指定逐出的类型。可能的值包括 0 (LRU) 和 -1(无)。值 0 对最近最少使用的项目启用逐出。值 -1 禁用逐出。

expiration

包含描述过期策略的三个字段。

  1. defaultTTL:项目在过期前保留在缓存中的分钟数。

  2. isExpirable:值 true 启用过期,值 false 禁用过期。

  3. type:过期的类型。值 0 禁用过期。值 1 指定绝对过期。值 2 指定滑动过期。如果使用滑动过期,则每次访问缓存中的项目均会重置过期时间。

Important重要提示
如果 type 设置为 0(禁用),则必须将 isExpirable 设置为 fasle,并且必须将 defaultTTL 设置为 0

serverNotification

包含单个字段 isEnabled,该字段指定是否为此缓存启用通知。

指定 缓存 的诊断信息收集的初始级别。此设置特定于作为缓存客户端的角色的诊断信息。此设置从客户端角度提供了有关缓存使用的诊断信息。请注意,在并置拓扑中,可以在同一角色配置中同时使用 ClientDiagnosticLevel 和 DiagnosticLevel。

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

指定 缓存 的诊断信息收集的初始级别。此设置特定于托管 缓存 的角色的诊断信息。

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

要用于 缓存 的可用内存百分比。对于共存拓扑,这应是个不带百分号的整数,例如 30

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

对于专用拓扑,这应是个空字符串。

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

要用于 缓存 的 Azure 存储帐户。这是用于保存有关缓存群集的配置数据的存储,可从组成缓存群集的所有虚拟机中进行访问。请注意,下面的示例使用用于本地调试的开发人员存储。在部署到云之前,你应该将此存储更改为实际存储帐户。

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

显示:
© 2016 Microsoft