导出 (0) 打印
全部展开

本地缓存(Azure 缓存的角色中缓存)

更新时间: 2010年7月

note备注
有关为你的应用程序选择合适的 Azure 缓存产品/服务的指导,请参阅 Azure 缓存常见问题解答

本地缓存是一种 Microsoft Azure Cache功能,它通过减少对远程缓存的网络请求而提高性能。Microsoft Azure Cache将在分布于多个服务器的内存中缓存之中以序列化形式存储对象。在某一应用程序需要请求缓存中的对象时,首先要确定存储该对象的服务器。该服务器然后通过网络将序列化对象缓存到请求的应用程序中。然后,该应用程序反序列化该对象以便供其使用。若要加快检索某个对象的过程,请启用本地缓存。

当启用本地缓存时,缓存客户端在本地存储对对象的引用。此本地引用将使对象在客户端应用程序的内存中保持活动状态。当应用程序请求对象时,缓存客户端将检查对象是否位于本地缓存中。如果位于本地缓存中,则立即返回对该对象的引用,而不联系服务器。如果不在本地缓存中,则从服务器检索该对象。然后,缓存客户端反序列化该对象并将对此新检索到的对象的引用存储在本地缓存中。客户端应用程序也使用该对象。

本地缓存中的对象的生存期取决于本地缓存中的对象的最大数目和失效策略。对于本地缓存,有两种类型的失效:基于超时的失效以及基于通知的失效。有关详细信息,请参阅过期和逐出(Azure 缓存的角色中缓存)

可以使用 web.config 或应用程序配置文件启用和配置本地缓存。可以将 localCache 元素添加到 dataCacheClient 节。下表列出了 localCache 元素的属性。

 

属性 说明

isEnabled

设置为 truefalse 可启用或禁用本地缓存。

sync

确定使本地缓存失效的方式。可能的值为 TimeoutBasedNotificationBased

objectCount

要在本地缓存中存储的对象的最大数目。默认值为 10000。

ttlValue

本地缓存中保留对象的秒数。默认值为 300 秒。

使用 TimeoutBasedsync 值将使对象在本地缓存,直到达到 ttlValue 限制。NotificationBased 的值不但使用基于超时的机制,而且还使用通知。若要对失效使用通知,请为缓存启用通知。通知的轮询间隔将检查本地缓存中的项目是否已更改。有效的通知轮询间隔必须短于 ttlValue 设置才能生效。可以使用附加元素 clientNotification,通过将 pollInterval 属性设置为所需的秒数来配置通知的轮询间隔。默认值为 300 秒。

note备注
通知是一种角色中缓存功能,只有 角色上托管的缓存才支持此功能。Microsoft Azure Shared Caching不支持通知。

以下示例显示了 dataCacheClient 节,该节使用一个本地缓存,其基于超时的本地过期时间为五分钟(300 秒)。

    <dataCacheClient name="default">
      <!-- Other configuration settings for cache -->
      <localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />
    </dataCacheClient>

以下示例显示了前面的 dataCacheClient 节,该节已改为使用通知,通过每隔一分钟(60 秒)进行轮询来提供附加的同步。只有基于角色的角色中缓存才支持通知。

    <dataCacheClient name="default">
      <autoDiscover isEnabled="true" identifier="WebRole1" />
      <localCache isEnabled="true" sync="NotificationBased" objectCount="100000" ttlValue="300" />
      <clientNotification pollInterval="60" />
    </dataCacheClient>

若要下载使用本地缓存的示例,请参阅 Caching API and Performance Sample(Caching API 和性能示例)。

另请参阅

Microsoft 正在进行一项网上调查,以了解您对 MSDN 网站的意见。 如果您选择参加,我们将会在您离开 MSDN 网站时向您显示该网上调查。

是否要参加?
显示:
© 2014 Microsoft