启用 Windows Server AppFabric 本地缓存

Windows Server AppFabric 提供了以编程方式或使用应用程序配置文件配置缓存客户端的选项。以下过程介绍了如何以编程方式启用缓存客户端上的本地缓存。有关如何使用应用程序配置文件进行此操作的信息,请参阅启用 Windows Server AppFabric 本地缓存 (XML)

以下步骤介绍以编程方式为缓存客户端启用本地缓存所需的过程:

  1. 创建 DataCacheLocalCacheProperties 类的实例。通过向构造函数的参数传递相应的值来配置本地缓存。这些参数包括 objectCountdefaultTimeoutinvalidationPolicy

  2. DataCacheLocalCacheProperties 对象传递给新 DataCacheFactory 对象的构造函数。

  3. 使用 DataCacheFactory 对象调用 GetCache 方法以创建使用本地缓存的缓存客户端。

警告

这些过程假定您已准备好了开发环境,并且已设置了对 AppFabric 缓存程序集的引用。有关详细信息,请参阅准备缓存客户端开发环境(Windows Server AppFabric 缓存)

创建已启用本地缓存的缓存客户端的步骤

  1. 创建一个 DataCacheServerEndpoint 对象数组以为该客户端指定缓存主机。

  2. 创建 DataCacheLocalCacheProperties 类的实例。通过向构造函数的参数传递相应的值来配置本地缓存。

    1. 使用 objectCount 参数指定本地缓存中的最大对象数量。

    2. 使用 defaultTimeout 参数指定 System.TimeSpan 对象,该对象确定某个对象失效前保留在本地缓存中的时间。

    3. 使用 invalidationPolicy 参数指定如何使本地缓存的对象无效。指定 DataCacheLocalCacheInvalidationPolicy.TimeoutBased 指示应只使用超时值。指定 DataCacheLocalCacheInvalidationPolicy.NotificationBased 指示除超时之外将使用缓存通知。有关详细信息,请参阅缓存客户端和本地缓存(Windows Server AppFabric 缓存)

  3. 如果为失效策略选择了 DataCacheLocalCacheInvalidationPolicy.NotificationBased,则可以选择对轮询间隔进行控制,以控制缓存客户端与缓存群集为本地存储对象获取更新通知进行的通信频率。为此,请创建一个 DataCacheNotificationProperties 类的实例。通过向构造函数的参数传递相应的值来配置通知设置。

    1. 使用 PollInterval 参数为缓存客户端访问缓存群集以获取缓存通知的频率间隔指定 System.Timespan 对象。请注意,缓存通知不需要本地缓存。有关详细信息,请参阅缓存通知(Windows Server AppFabric 缓存)

    2. MaxQueueLength 参数控制通知的队列长度,但不会明确影响本地缓存。默认值为 16384。

  4. 创建 DataCacheFactoryConfiguration 类的实例。

  5. 通过将第一个步骤中的缓存主机数组分配给 DataCacheFactoryConfiguration 对象的 Servers 属性来配置缓存主机。

  6. 通过将第二个步骤中创建的 DataCacheLocalCacheProperties 对象分配给 DataCacheFactoryConfiguration 对象的 LocalCacheProperties 属性来配置本地缓存。

  7. (如果需要)通过将第三个步骤中创建的 DataCacheNotificationProperties 对象分配给 DataCacheFactoryConfiguration 对象的 NotificationProperties 属性来配置通知属性。

  8. DataCacheFactoryConfiguration 对象传递给 DataCacheFactory 类的构造函数。

  9. 使用 GetCache 方法根据 DataCacheFactoryConfiguration 对象的设置获取 DataCache 类。

备注

如果为本地缓存失效策略选择了 DataCacheLocalCacheInvalidationPolicy.NotificationBased,则目标缓存必须配置为已启用通知。有关详细信息,请参阅使用 Windows PowerShell 管理 Windows Server AppFabric 缓存功能

示例

此示例演示以编程方式配置已启用本地缓存的缓存客户端。此客户端被配置为使用名为 NamedCache1 的缓存,并指向名为 CacheServer2 的缓存服务器。要在您自己的应用程序中使用此示例,请将此示例中的服务器属性替换为您自己缓存服务器的属性。为群集中的每个其他缓存主机向服务器数组添加附加 DataCacheServerEndPoint 对象。

指定已指定为主要主机的缓存主机。主要主机通常是群集中安装的首批缓存服务器。有关主要主机的详细信息,请参阅 Windows Server AppFabric 缓存物理体系结构示意图。您可以使用 Windows PowerShell 管理工具确定哪些主机是主要主机。有关 Windows PowerShell 的详细信息,请参阅 使用 Windows PowerShell 管理 Windows Server AppFabric 缓存功能。首先,创建服务器数组。此示例将配置一个名为 CacheServer2 的缓存主机。

' Declare array for cache host(s).
Dim servers(0) As DataCacheServerEndpoint
servers(0) = New DataCacheServerEndpoint("CacheServer2", 22233)
// Declare array for cache host(s).
DataCacheServerEndpoint[] servers = new DataCacheServerEndpoint[1];
servers[0] = new DataCacheServerEndpoint("CacheServer2", 22233);

接下来,创建一个 DataCacheLocalCacheProperties 对象。在本示例中,将创建对象计数为 10000,超时为 30 秒的本地缓存。

' Set the local cache properties. In this example, it
' is timeout-based with a timeout of 30 seconds.
Dim localCacheConfig As DataCacheLocalCacheProperties
Dim localTimeout As TimeSpan = New TimeSpan(0, 0, 30)

localCacheConfig = New DataCacheLocalCacheProperties(10000, _
   localTimeout, DataCacheLocalCacheInvalidationPolicy.TimeoutBased)
// Set the local cache properties. In this example, it
// is timeout-based with a timeout of 30 seconds.
DataCacheLocalCacheProperties localCacheConfig;
TimeSpan localTimeout = new TimeSpan(0, 0, 30);

localCacheConfig = new DataCacheLocalCacheProperties(10000, 
   localTimeout, DataCacheLocalCacheInvalidationPolicy.TimeoutBased);

然后创建一个 DataCacheFactoryConfiguration 对象。将 servers 数组分配给 Servers 属性。将 localCacheConfig 对象分配给 LocalCacheProperties 属性。

' Setup the DataCacheFactory configuration.
Dim factoryConfig As DataCacheFactoryConfiguration
factoryConfig = New DataCacheFactoryConfiguration

factoryConfig.Servers = servers
factoryConfig.LocalCacheProperties = localCacheConfig
// Setup the DataCacheFactory configuration.
DataCacheFactoryConfiguration factoryConfig = 
   new DataCacheFactoryConfiguration();

factoryConfig.Servers = servers;
factoryConfig.LocalCacheProperties = localCacheConfig;

再将 DataCacheFactoryConfiguration 对象传递给 DataCacheFactory 类构造函数,并用 GetCache 方法实例化该缓存客户端。本示例将为名为 NamedCache1 的缓存创建一个缓存客户端。

' Create a configured DataCacheFactory object.
Dim mycacheFactory As DataCacheFactory
mycacheFactory = New DataCacheFactory(factoryConfig)

' Get a cache client for the cache "NamedCache1".
Dim myDefaultCache As DataCache
myDefaultCache = mycacheFactory.GetCache("NamedCache1")
// Create a configured DataCacheFactory object.
DataCacheFactory mycacheFactory = new DataCacheFactory(factoryConfig);

// Get a cache client for the cache "NamedCache1".
DataCache myDefaultCache = mycacheFactory.GetCache("NamedCache1");

备注

出于性能原因,建议您将在启用缓存的应用程序中创建的 DataCacheFactory 对象数量降至最低。将 DataCacheFactory 对象存储在对应用程序中使用缓存客户端的各个部分都可用的变量中。

另请参阅

概念

Windows Server AppFabric 缓存客户端入门
更改缓存客户端日志记录级别(Windows Server AppFabric 缓存)
缓存客户端和本地缓存(Windows Server AppFabric 缓存)
Windows Server AppFabric 缓存概念
开发缓存客户端(Windows Server AppFabric 缓存)

其他资源

用 XML 配置缓存客户端

  2011-12-05