2013-01-09 38 views
3

我有一个简单的项目,我想发布到Azure网站。我需要对一些值进行一些基本缓存以加快速度。Azure网站缓存策略

在这种情况下缓存数据的正确策略是什么?我想,只要我保持自由或保留,我可以使用简单的标准网页缓存,因为它是一台机器,但如果我想使用共享的一些实例会发生什么?分布式缓存真的可用于网站吗?这里有什么其他选项可以用于简单缓存?

回答

1

根据this,它看起来不像可以使用共享/分布式缓存。有改变吗?你有一个链接,指出Azure支持其2种缓存方案中的任何一种网站?

只要你只有1个实例,你是对的,使用正常的outputCache应该没问题。如果扩展到2个或更多实例,则可能必须从网站迁移到托管服务才能使用其他2种缓存策略中的任何一种。 Azure并未提供具有托管服务的网站的全套功能。

+0

我读过关于dist的限制。缓存,只是不确定它仍然有效。我想这是他们在将产品从测试版移出之前将要解决的问题。 – Riri

+1

Danludwig的回复已经过去了6个月,我猜Azure世界中的很多事情都发生了变化 - 我刚刚部署了一个使用Azure Shared Cache的网站。然而,让我有点生气的是,至少恕我直言,即使在MSDN网站上也有很多过时的文档,要获得正确的答案是相当具有挑战性的。 Riri的问题非常好,我想知道更新的答案是什么:-) –

+1

@AntoninJelinek,如果您在网站上使用共享/分布式缓存,那么看起来您已经对此问题有了更新的答案。我相信这个问题与在网站中使用共享缓存与托管服务有关......在后者中,共享缓存始终可用。 – danludwig

1

这是我的2美分根据丹的答案下的简短讨论。截至2013年7月,我刚刚将我的网站/ Web应用程序部署到Azure。这是一种足球(我们美国朋友的足球:-))预测游戏。它使用缓存来存储大量POCO对象(比如匹配列表,玩家列表等)到缓存中。这不是一个全新的应用程序,我们在内部部署的hw上运行了2个赛季(服务器场中的2台服务器,这个服务器有点过分了,SQL db)。现在我们在共享模式下运行一个实例。新赛季将于下周开始,如果我们看到单个实例还不够,我们准备扩大规模。

所以我终于缓存了。我们选择了共享缓存。如何设置它有很好的文档记录,尽管我个人的感觉是文档没有跟上Azure演进的速度。

将项目放入和共享缓存很容易,以及如何在web.config中配置它。我们不得不花费一点努力找到一种方法,在你需要的时候如何从你的应用程序中清除整个缓存 - 据我所知,如何枚举已经存在于缓存中的项目是没有办法的。最后,我们结束了一个非常简单的解决方案,无论什么时候您将任何东西放入缓存中,您只需在附近留下密钥,并且在需要清除整个缓存时,就可以使用它。

现在,我不得不说我不是为这个Azure托管支付账单的人,我没有看到Azure门户上的当前账单,但我显然关心整体价格。对我来说不太清楚的是使用共享缓存的成本。我花了一些时间找出一些定价表,虽然我不完全确定它是否适用。我无法在Azure价格计算器中看到这一点。

回到Dan的回答下我的评论 - 我相信有很多开发人员在中小型网站上工作,使用标准的HttpCache作为放置POCO对象以加快访问速度的地方。在这些例子中,整体缓存大小可能高达50 MB(显然取决于您使用缓存的方式)。这样的网站在单个实例上可能是可以的,但是嘿嘿,2个或更多的实例会踢屁股,我想在时间到了需要扩展的时候做好准备。对于这种情况,我错过了什么样的缓存选择和花费多少的明确指导。