Azure 托管缓存服务开发

重要

Microsoft 建议所有新开发使用 Azure Redis 缓存。 有关选择 Azure 缓存产品/服务的当前文档和指南,请参阅 哪种 Azure 缓存产品/服务适合我?

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

编程模型

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

缓存端编程注意事项

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

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

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

开发过程

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

  1. 创建缓存。

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

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

创建缓存

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

配置客户端

你必须将应用程序(也称为缓存客户端)配置为使用缓存。 这涉及两个步骤:

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

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

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

使用缓存服务 API

最后一步是在应用程序代码中使用缓存。 可以通过两种方法实现此目的:

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

// 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");
' Cache client configured by settings in application configuration file.
Dim config As New DataCacheFactoryConfiguration("default")
Dim cacheFactory As New DataCacheFactory(config)
Dim defaultCache As DataCache = cacheFactory.GetDefaultCache()

' Put and retrieve a test object from the default cache.
defaultCache.Put("testkey", "testobject")
Dim strObject As 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");
' Cache client configured by settings in application configuration file.
Dim defaultCache As New DataCache("default", "default")

' Put and retrieve a test object from the default cache.
defaultCache.Put("testkey", "testobject")
Dim strObject As String = defaultCache.Get("testkey")

注意

前面的示例在 RoleEntryPoint 方法重载中无效。 有关详细信息,请参阅如何:在 Azure 托管缓存服务 RoleEntryPoint 方法中创建 DataCache 对象

有关使用 托管缓存服务 API 访问缓存的其他内容,请参阅“使用 Azure 托管缓存服务”部分。

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

本部分内容

另请参阅

概念

如何:为 Azure 托管缓存服务创建缓存

其他资源

Azure 托管缓存服务