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

Azure 托管缓存服务开发

更新时间: 2015年8月

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

托管缓存服务提供了一组 API,用于在缓存中添加、更新和删除项目。使用 Microsoft.ApplicationServer.Caching 命名空间中的类和方法是一种与缓存交互的直接方法,而使用 ASP.NET 提供程序之一则是使用缓存的间接方法。本部分的主题介绍了如何直接以编程方式使用托管缓存服务。有关托管缓存服务的 ASP.NET 提供程序的详细信息,请参阅用于 Azure 托管缓存服务的 ASP.NET 4 缓存提供程序

托管缓存服务编程模型专用于缓存端编程模式。如果你的数据不存在于缓存、应用程序和分布式缓存中,则必须从原始数据源将数据重新加载到缓存中。

请将应用程序代码设计为可独立于缓存而正常工作,以使应用程序在缓存数据不可用时也能继续正常工作。由于缓存中的数据不以持久形式暂留,因此缓存中的数据可能不可用。例如,如果将缓存扩展为不同的缓存产品,内存中的缓存项目将丢失。请求某个不存在于缓存中的项目称为缓存未命中

使用托管缓存服务高可用性功能时,缓存项目的备份副本可帮助防止缓存中出现计算机和进程故障。即使启用了高可用性,也有可能因为发生重大灾难事件而丢失所有缓存数据(无论距离有多远)。需要暂留的项目必须使用数据库或其他持久存储技术。有关详细信息,请参阅 TechNet 上的 Azure 托管缓存服务的高可用性.

还有很多其他原因可能会导致你的代码遇到缓存未命中。例如,缓存项目可能已根据正常过期策略和逐出策略过期或被逐出。无论何种原因,应用程序代码必须能够访问原始数据来源,以在缓存中重新填充项目。有关详细信息,请参阅 TechNet 上的 Azure 托管缓存服务的过期和逐出.

在应用程序中使用缓存有几个基本步骤。

  1. 创建缓存。

  2. 将客户端配置为使用缓存。

  3. 通过托管缓存服务 API 来使用缓存。

托管缓存服务中的缓存是使用 Powershell cmdlet 创建,然后在 Azure 管理门户中管理的。有关创建缓存的指导,请参阅操作方法:为 Azure 托管缓存服务创建缓存

你必须将应用程序(也称为缓存客户端)配置为使用缓存。此操作包括两个步骤:

  1. 在 托管缓存服务 项目中引用Visual Studio程序集。

  2. 使用配置文件设置或代码来配置对缓存的访问。

托管缓存服务提供了一个 缓存 NuGet 包,该包可添加程序集引用并将所需配置插入项目的 web.config 或 app.config 文件中。安装缓存 NuGet 程序包后,编辑新添加的配置并指定缓存终结点和访问密钥。有关分步说明,请参阅操作方法:为 Azure 托管缓存服务配置缓存客户端

最后一步是在应用程序代码中使用缓存。可以通过两种方式完成此操作:

若要在代码中直接访问缓存,请使用托管缓存服务 API 中的 DataCacheFactoyConfigurationDataCacheFactoryDataCache 类。以下示例演示如何使用应用程序配置文件的 default default 节中的设置在 dataCacheClient 缓存中添加和检索字符串。

// Cache client configured by settings in application configuration file.
DataCacheFactoryConfiguration config = new DataCacheFactoryConfiguration("default");
DataCacheFactory cacheFactory = new DataCacheFactory(config);
DataCache defaultCache = cacheFactory.GetDefaultCache();    

// Put and retrieve a test object from the default cache.
defaultCache.Put("testkey", "testobject");
string strObject = (string)defaultCache.Get("testkey");

你也可以通过重载 DataCache 构造函数来访问命名缓存和配置文件部分。以下代码示例在功能上与前面的示例相同。

// Cache client configured by settings in application configuration file.
DataCache defaultCache = new DataCache("default", "default");

// Put and retrieve a test object from the default cache.
defaultCache.Put("testkey", "testobject");
string strObject = (string)defaultCache.Get("testkey");
note备注
前面的示例在 RoleEntryPoint 方法重载中无效。有关详细信息,请参阅操作方法:在 RoleEntryPoint 方法中为 Azure 托管缓存服务创建 DataCache 对象

使用 Azure 托管缓存服务部分提供了使用托管缓存服务 API 访问缓存的附加信息。

有关托管缓存服务的完整演示示例,请参阅 Azure 托管缓存服务示例

另请参阅

显示: