本文档已存档,并且将不进行维护。

关于 Azure 缓存的角色中缓存

更新时间: 2015年8月

Important重要提示
Microsoft 建议使用 Azure Redis 缓存进行所有新的开发。有关选择 Azure 缓存产品的最新文档和指导,请参阅哪种 Azure 缓存产品适合我?

角色中缓存支持在 Azure 角色上托管 缓存服务的功能。在此模型中,缓存是你的云服务的一部分。将选择云服务中的一个角色来托管角色中缓存。该角色的运行实例将加入内存资源以形成缓存群集。这个专用缓存群集仅对同一部署内的角色可用。角色中缓存有两种主要的部署拓扑:共存拓扑和专用拓扑。共存角色还托管其他非缓存应用程序代码和服务。专用角色是仅用于 缓存 的辅助角色。以下主题更详细地讨论了这些缓存拓扑。

有关基于角色的角色中缓存的循序渐进操作实例,请参阅如何使用 Azure 角色中缓存。有关可下载的示例,请参阅Azure 角色中缓存示例

本部分概述了与基于角色的角色中缓存有关的三个主要概念。

  1. 缓存群集

  2. 命名缓存

  3. 缓存客户端

Azure 角色具有一个或多个实例。每个实例是一个配置为托管指定角色的虚拟机。当启用了角色中缓存的角色在多个实例上运行时,将形成缓存群集。缓存群集是一种分布式缓存服务,它使用群集中所有计算机的组合内存。应用程序可以添加并检索缓存群集中的项目,而不必知道这些项目存储在哪台计算机上。如果启用了高可用性,则项目的备份副本将自动存储在其他虚拟机实例上。

note备注
每个云服务仅支持一个缓存群集。通过为每个角色指定单独的存储帐户,可以在一个云服务中设置多个缓存群集。但是,此配置不受支持。

对 角色中缓存 角色启用Azure时,将指定可用于 Caching 的内存量。在共存方案中,可以选择用于托管角色的虚拟机上的可用内存的百分比。在专用方案中,虚拟机上的所有可用内存均用于缓存。但是,考虑到操作系统的内存需求,可用内存将始终小于虚拟机上的总物理内存。

因此,缓存内存总量取决于为缓存保留的角色内存乘以角色数。你可以通过增加或减少该角色的运行实例数来有效地扩展或缩减总缓存内存。

Warning警告
缩减托管 角色中缓存 的角色的运行中实例时,一次减少的实例计数请不要超过三个。在完成该项更改后,最多可以删除另外三个运行中的实例;重复此操作,直到达到所需的运行中实例数。同时缩减三个以上的实例会导致缓存群集不稳定。

每个缓存群集都会在 Azure 存储中保留有关群集运行时状态的共享信息。在开发期间,可以使用 Azure 存储模拟器。已部署角色必须指定一个有效的 Azure 存储帐户。在 Visual Studio 中,可以在角色属性的“Caching”选项卡上指定适当的存储帐户。

每个缓存群集均至少有一个名为 default 的缓存。使用基于角色的角色中缓存,还可以添加其他命名缓存。每个缓存都有多个可以更改的设置。下面的屏幕快照显示了 Visual Studio 角色设置的“Caching”选项卡的“命名缓存设置”部分。

为命名缓存 Caching 属性

在 Visual Studio 中,单击“添加命名缓存”按钮以添加其他命名缓存。在前面的示例中,添加了两个附加缓存:NamedCache1NamedCache2。每个缓存均有不同的设置。通过选择和修改表中的特定字段来更改设置。

命名缓存为应用程序设计者提供了灵活性。每个命名缓存均有自己的属性。例如,某个缓存可以启用“高可用性”来利用高可用性。其他缓存可能不需要此设置,而且对于每个缓存项目来说,高可用性需要两倍的内存。仅对需要高可用性的缓存使用高可用性可以更好地利用资源。还有其他类似的方案,即使用多个属性不同的缓存以满足应用程序的要求。

缓存客户端是用于存储和检索缓存群集中项目的任意应用程序代码。使用角色上的角色中缓存,缓存客户端必须是同一缓存角色的一部分,或者必须并入部署中的其他角色。通过使用应用程序或 Web 配置文件来配置缓存客户端。有关详细信息,请参阅操作方法:准备 Visual Studio 以使用 Azure 角色中缓存。以下示例显示了配置文件中的 dataCacheClient 元素。

<dataCacheClients>
  <dataCacheClient name="default">
    <autoDiscover isEnabled="true" identifier="CachingRole1" />
    <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
  </dataCacheClient>
</dataCacheClients>

在前面的示例中,autoDiscover 元素的 identifier 属性已设置为 CachingRole1。此标识符指定 CachingRole1 已启用 角色中缓存。它提供缓存服务器的位置。缓存客户端在任何缓存操作中均自动使用 CachingRole1

缓存客户端在配置后便可以按名称访问任何缓存。以下示例访问 NamedCache1 缓存,并向该缓存中添加项目。

DataCache cache = new DataCache("NamedCache1", "default");
cache.Put("testkey", "testobject");

DataCache 构造函数采用两个参数:缓存名称和 dataCacheClient 节名。有关缓存名称的信息,请参阅有关命名缓存的前一部分。

另请参阅

概念

缓存

显示: