缓存客户端和本地缓存(AppFabric 1.1 缓存)

当使用 Microsoft AppFabric 1.1 for Windows Server 的缓存功能时,您的应用程序会使用 DataCache 对象将数据存储在缓存中。该对象称为缓存客户端。若要创建使用默认缓存的缓存客户端,请使用 GetDefaultCache 方法。若要创建使用命名缓存的缓存客户端,请使用 GetCache 方法。

备注

由于性能的原因,我们建议您最大程度减少启用了缓存的应用程序创建的 DataCacheFactory 对象数量。将 DataCacheFactory 对象存储在某个变量中,该变量可用于使用缓存客户端的应用程序的所有部分。

安全注意事项

我们强烈建议您保证用于指定缓存客户端的任何基于 XML 的应用程序配置文件的安全。此文件中指定缓存主机的计算机名称。但是,若要使其他客户端能够实际访问缓存群集,则这些客户端将需要访问缓存群集的权限。

本地缓存

服务器采用序列化形式将对象存储在缓存中。当缓存客户端请求缓存中的某个对象时,服务器通过网络将该对象发送到客户端。然后,缓存客户端反序列化该对象以供客户端应用程序使用。若要加快检索某个对象的过程,请启用本地缓存。有关启用本地缓存的详细信息,请参阅启用 AppFabric 1.1 本地缓存启用本地缓存 (XML)

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

对象在本地缓存中的生存期取决于多个因素,如本地缓存中对象的最大数量以及失效策略。对于本地缓存,有两种类型的失效:基于超时的失效以及基于通知的失效。有关详细信息,请参阅过期和逐出(AppFabric 1.1 缓存)

Tip技巧
将对象存储在本地缓存中之后,无论这些对象是否被缓存群集中的另一个客户端更新,您的应用程序都将继续使用这些对象,直到这些对象失效。为此,对于很少更改的数据,最好使用本地缓存。

对象一致性

本地缓存的对象存储在缓存客户端进程所在的同一进程空间中。当缓存客户端请求本地缓存的对象时,客户端将收到对本地缓存对象的引用,而非副本。对于可能从多个线程修改相同本地缓存对象的多线程应用程序而言,这是非常重要的注意事项。这些应用程序可以利用标准的 .NET Framework 编码技术从多个线程同步对象的更改。也可以为每个线程创建单独的 DataCacheFactory 对象。但是,应谨慎执行该操作,因为创建很多缓存工厂的开销可能会减少优势。

另请参阅

概念

AppFabric 缓存物理体系结构图(AppFabric 1.1 缓存)
AppFabric 缓存逻辑体系结构图(AppFabric 1.1 缓存)
过期和逐出(AppFabric 1.1 缓存)
启用 AppFabric 1.1 本地缓存
启用本地缓存 (XML)
开发缓存客户端

  2012-03-05