Azure网站中的缓存策略

时间:2013-01-09 12:28:45

标签: .net asp.net-mvc azure azure-web-sites

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

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

2 个答案:

答案 0 :(得分:1)

根据this,看起来您不能使用共享/分布式缓存。这改变了吗?你有一个链接说Azure支持网站的两种缓存方案吗?

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

答案 1 :(得分:1)

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

所以我终于要缓存了。我们选择了共享缓存。如何设置它是有据可查的,虽然我个人认为文档没有跟上Azure发展的速度。

将项目放入和放入共享缓存非常简单,以及如何在web.config中配置它。我们不得不花费一些精力来找到一种方法,以便在需要时从应用程序中清除整个缓存 - 据我所知,没有办法如何枚举缓存中已有的项目。最后,我们得到了一个非常简单的解决方案,无论何时将任何内容放入缓存中,只需将密钥放在一边,当您需要清除整个缓存时,就可以使用它。

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

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