首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure AppFabric输出缓存支持读取或程序失效吗?

Azure AppFabric输出缓存支持读取或程序失效吗?
EN

Stack Overflow用户
提问于 2011-09-07 20:39:23
回答 1查看 602关注 0票数 2

我想知道目前在Azure AppFabric SDK中发布的输出缓存提供程序是否支持(1)中描述的内容:

通常在get请求失败时,客户端负责从缓慢存储(例如数据库、文件服务器或远程服务)加载丢失的数据,并填充缓存。这是请求所需往返次数的三倍,并引入了比赛条件的可能性。有了的通读支持,AppFabric本身就会发出对缓慢存储的辅助调用。AppFabric通过抽象类DataCacheStoreProvider的自定义实现获得了这种能力。

(3)的"What's Next“一节似乎表明它不是:

此外,缓存会话状态提供程序(会话提供程序)方案与

的成功导致了对将写后查询和通读查询与缓存关联起来的请求,以便缓存可以成为操作数据的主要方式,同时允许相关查询更新后端的数据层。

我们将评估这些特性和其他特性,以便在Windows缓存的未来版本中包含这些特性。同时,我们鼓励您尝试当前的缓存服务实现,并让我们知道它是如何为您工作的。

是否还有其他机制来编程( a)使缓存的页面无效,b)替换缓存的页面,而不让它通过客户端请求自然地重新水合物(这可能导致负载下的问题,因为所有请求都争相重新补充元素)?

其他记录在案的差异w/ Windows Server (4):

ASP.NET缓存

Windows提供会话状态提供程序和输出缓存提供程序。此提供程序与Windows第一版附带的提供程序不同。它还提供了额外的功能。正因为如此,在Windows中仔细遵循正确修改AppFabric文件的说明是很重要的。有关更多信息,请参见使用ASP.NET 4 AppFabric缓存提供程序。

不可用缓存特性

Windows支持Windows中可用的缓存功能的子集。下面的列表描述了其中的一些差异。

Notifications

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

Expiration and Expiration

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

Windows缓存不支持禁用缓存上的强制驱逐。在记忆压力下,总是有可能驱逐物品。应用程序的设计应该预见到项目可能丢失,并需要在任何时候重新加载。如果缓存太小,无法满足应用程序的需求,则可以从Windows平台管理门户动态增加缓存。

有关Windows中过期和驱逐的详细信息,请参阅expiration和Expiration (Windows缓存)。

高可用性

Windows缓存不支持高可用性特性。有关Windows中高可用性的详细信息,请参阅高可用性(Windows缓存)。

区域和标签

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

API支持

在大多数情况下,您可以使用相同的API编写使用Windows或Windows的缓存客户端。由于这两种解决方案的不同,也有一些例外。有关Windows缓存客户端可用API的详细介绍,请参阅seeAPI参考(Windows缓存)。

参考资料:

(1) Windows增加了对读写的支持: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缓存服务:

http://msdn.microsoft.com/en-us/magazine/gg983488.aspx

(4)室内缓存与云中缓存之间的区别:

http://msdn.microsoft.com/en-us/library/gg185678.aspx

EN

回答 1

Stack Overflow用户

发布于 2012-07-29 13:19:22

正如您引用的文档所指出的,无法使用Windows共享缓存服务(以前称为Windows缓存)使本地缓存失效。这是因为该服务不支持通知。如果没有在该服务中使用本地缓存选项,则可以显式删除缓存项,从而使其失效。这将从服务中的分布式缓存中删除它,然后所有请求它的实例都将一无所获。

至于替换缓存页面,我相信您可以通过直接更新缓存来做到这一点;但是,考虑到缓存中删除的内容的数量,您可能无法100%地保证页面最终不会因为压力和竞争的发生而崩溃。

如果您想要更多地控制缓存,我强烈建议查看新的Windows专用缓存预览版。这是在预览,所以你可能不想冒险与您的生产工作,但它将给予您更多的控制您的缓存。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7340259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档