2011-09-07 58 views
2

我想知道如果有什么(1)由输出缓存提供者,目前船在Azure的AppFabric的SDK支持的描述:Azure AppFabric输出缓存是否支持通读或编程无效?

通常,当一个GET请求失败的客户端负责 加载失踪来自慢速存储的数据(例如数据库,文件 服务器或远程服务)并填充缓存。这会使请求所需的往返次数增加三倍,并引入竞争条件的可能性 。与通读支持打开 AppFabric本身使次呼叫减缓存储。 AppFabric 通过定制实现抽象类 DataCacheStoreProvider获得此能力。

的“下一步是什么”第(3)似乎表明,它不是:

此外,高速缓存会话状态提供成功 场景与ASP.NET导致在能力与高速缓存 准后写和读通过查询请求,以便 缓存可以成为操纵数据的主要方式,同时让 相关的查询,更新后端数据层。

我们将评估这些和其他功能可能列入 未来的Windows Azure AppFabric缓存的版本。同时,我们鼓励您尝试当前的缓存服务 实现,并让我们知道它如何为您工作。

是否有任何其他机构以编程方式)无效和b)替换缓存页面不让它自然重新水合通过客户端请求(这可能会导致负荷下的问题,因为所有的请求的比赛重新水合元素)?

其他记录差异瓦特/的Windows Server(4):

ASP.NET缓存

的Windows Azure AppFabric的同时提供了会话状态提供者和 输出缓存提供。此提供程序与第一个Windows Server AppFabric版本发货 的提供程序不同。它还提供 附加功能。因此,仔细按照 的说明正确修改用于Windows Azure AppFabric的web.config文件 是非常重要的。有关更多信息,请参阅使用用于AppFabric的ASP.NET 4高速缓存提供程序 。

不可缓存功能

的Windows Azure AppFabric的支持缓存的一个子集功能在Windows Server AppFabric的 可用。以下列表描述了 其中的一些差异。

通知

通知不会在Windows Azure的AppFabric缓存的支持。 这也意味着您不能使用通知来使 本地缓存失效。在Windows Azure AppFabric中,本地缓存只能使用基于超时的 失效策略。有关Windows Server AppFabric中的 通知功能的详细信息,请参阅缓存 通知(Windows Server AppFabric缓存)。

过期和逐出

默认情况下,在Windows Azure的AppFabric的缓存项不会过期。 这意味着当您超出最大缓存大小时,缓存中最少使用的项目会被逐出。与Windows Server AppFabric不同,无法更改此默认到期设置 或值。但是,如果使用明确的 到期时间(例如10分钟)将项目添加到高速缓存,则缓存将遵守此 到期值。这可以通过添加 和Put方法的各种过载来完成。请注意,ASP.NET提供程序自动使用这些重载提供会话状态的显式超时和输出缓存。

Windows Azure AppFabric缓存不支持在缓存中禁用驱逐 。在内存压力下,物品总有可能被驱逐。应用程序应设计为预计项目 可能会丢失,并且需要随时重新加载。如果对于应用程序需求缓存太小,则可以从Windows Azure平台管理门户中动态增加 。

有关Windows Server AppFabric中过期和驱逐的更多信息,请参阅过期和驱逐(Windows Server AppFabric 高速缓存)。

高可用性

的Windows Azure AppFabric缓存不支持高可用性 功能。有关Windows服务器AppFabric中的高可用性的详细信息,请参阅高可用性(Windows Server AppFabric 高速缓存)。

地区和标签

的Windows Azure AppFabric缓存不支持用户创建的区域 或基于标记的搜索。

API支持

在大多数情况下,你可以使用相同的API编写高速缓存客户端 使用的Windows Azure AppFabric中或Windows Server AppFabric的。由于两种解决方案之间的差异,有一些例外情况有 。有关适用于Windows Azure AppFabric 缓存客户端的API的详细回顾,请参阅API参考(Windows Azure AppFabric缓存)。

参考文献:

(1)在Windows Server AppFabric的增加通读和后写支持: http://www.infoq.com/news/2011/08/AppFabric-CTP

(2)可扩展输出缓存与ASP.NET 4(VS 2010和.NET 4.0系列): http://weblogs.asp.net/scottgu/archive/2010/01/27/extensible-output-caching-with-asp-net-4-vs-2010-and-net-4-0-series.aspx

(3)介绍Windows Azure AppFabric高速缓存服务:
http://msdn.microsoft.com/en-us/magazine/gg983488.aspx

(4)缓存之间的区别内部部署和云中的:
http://msdn.microsoft.com/en-us/library/gg185678.aspx

回答

0

当你引用文档表示没有办法无效使用Windows Azure的共享缓存服务的本地缓存(以前称为Windows Azure AppFabric缓存)。这是因为该服务不支持通知。如果您没有对该服务使用本地缓存选项,则可以通过显式删除缓存项目来使其无效。这将从服务中的分布式缓存中移除它,并且所有请求它的实例都不会得到任何东西。

至于替换缓存页面,我相信你可以通过直接更新缓存来做到这一点;但是,考虑到从缓存中删除某些内容时会发生的因素数量,您可能无法100%保证页面最终不会因压力而退出,并且无论如何都会发生竞争。

如果你想更多地控制缓存,我强烈建议查看新的Windows Azure专用缓存预览。直到预览,所以你可能不想冒着生产工作的风险,但它会让你对缓存有更多的控制。

相关问题