角色中缓存角色的配置设置 (ServiceConfiguration.cscfg)
重要
Microsoft 建议所有新开发使用 Azure Redis 缓存。 有关选择 Azure 缓存产品/服务的当前文档和指南,请参阅 哪种 Azure 缓存产品/服务适合我?
本主题介绍 ServiceConfiguration.cscfg 文件中可用的Microsoft Azure缓存设置。 这些设置指定目标角色上的缓存配置。 Visual Studio中的角色属性对话框会在启用缓存时自动配置这些设置。 本主题中的参考信息最适用于想要利用缓存的非Visual Studio云服务部署。
ServiceConfiguration.cscfg
以下示例演示配置了缓存的基本 ServiceConfiguration.cscfg 文件。 此示例包含两个命名缓存:default
和 NamedCache1
。 这可以作为后面的参考部分的示例。
<?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="{"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}]}" />
<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 语法来组织的。 在该语法中,双引号是使用 "
字符实体引用来进行转义的。 下面的 NamedCaches 值取自上述完整的 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}]}
下面的示例显示与前面的示例相同的设置,但对输出进行了格式设置,并将 "
符号替换为双引号。 显示此示例是为了更好地理解语法,不应在 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
}
]
}
所有命名缓存都在顶级 缓存 字段中定义。 每个命名缓存由以下三个字段定义。
“缓存”字段 | 说明 |
---|---|
name |
指定缓存的名称。 |
策略 |
逐出、过期和通知设置的策略。 |
secondaries |
定义实现高可用性所需维护的备份副本数。 此时,值必须为 |
策略字段由以下属性组成。
“策略”字段 | 说明 |
---|---|
驱逐 |
包含一个字段, 类型,指定逐出的类型。 可能的值包括 |
expiration |
包含描述过期策略的三个字段。
重要
类型设置为 ( |
serverNotification |
包含一个字段 isEnabled,指定是否为此缓存启用通知。 |
ClientDiagnosticLevel
指定用于缓存的初始诊断集合级别。 此设置特定于作为缓存客户端的角色的诊断信息。 此设置从客户端角度提供了有关缓存使用的诊断信息。 请注意,在并置拓扑中,可以在同一角色配置中同时使用 ClientDiagnosticLevel 和 DiagnosticLevel。
<Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
DiagnosticLevel
指定用于缓存的初始诊断集合级别。 此设置特定于有关托管缓存的角色的诊断信息。
<Setting name="Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel" value="1" />
CacheSizePercentage
用于缓存的可用内存百分比。 对于共存拓扑,这应是个不带百分号的整数,例如 30
。
<Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="30" />
对于专用拓扑,这应是个空字符串。
<Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="" />
ConfigStoreConnectionString
用于缓存的 Azure 存储帐户。 这是用于保存有关缓存群集的配置数据的存储,可从组成缓存群集的所有虚拟机中进行访问。 请注意,下面的示例使用用于本地调试的开发人员存储。 在部署到云之前,你应该将此存储更改为实际存储帐户。
<Setting name="Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString" value="UseDevelopmentStorage=true" />