代码之家  ›  专栏  ›  技术社区  ›  maddog

Windows Azure角色缓存与共享缓存

  •  1
  • maddog  · 技术社区  · 13 年前

    我们在Azure中有一个网站,我们想缓存网站上的内容。将更新内容的应用程序将位于Azure之外。我们使用共享缓存实现了此场景。然而,共享缓存被认为是一种遗留功能,因此我们想看看其他解决方案,包括使用角色内缓存。缓存的内容非常小,不应超过1MB,并且将被C#代码消耗。

    我们可以在web角色中使用同一位置的缓存,也可以使用工作人员角色的专用缓存。

    我们在角色缓存中使用的问题是:

    • 如何从外部应用程序更新同一位置的缓存?

    • 如果有一种方法可以从外部应用程序更新同一位置的缓存, 缓存通知可以用于使所有位于同一位置的缓存节点无效,对吗?

    • 我们现在使用额外的小型web角色实例-是否需要升级到 小型/中型实例?

    • 专用缓存是否更适合我们的场景?

      提前谢谢。

    1 回复  |  直到 5 年前
        1
  •  5
  •   Community Mohan Dere    9 年前

    在做了一系列研究和 guided by Simon's responses 在他已经提到的SO线程中,以下是我的回答:

    • Q: 如何从外部应用程序更新同一位置的缓存?
    • A: 我将在您的Webrole上公开一个公共端点,该端点将清除缓存。我会从您的外部应用程序调用该端点(该端点可以是服务、rest URL等)。或者,将消息放入队列,让您的Webroles监视该队列,并在收到队列中的消息时从缓存中清除该项目。无论哪种方式,您都在实现自己的通知机制

    • Q: 如果有一种方法可以从外部应用程序更新同位置缓存,那么缓存通知可以用来使所有同位置缓存节点无效,对吗?

    • A: 我不这么认为。共定位缓存的端点严格来说是内部的。

    • Q: 我们现在使用额外的小型web角色实例-我们需要升级到小型/中型实例吗?

    • A: 是的。我认为在Small实例及更高版本中支持共址缓存。你需要尝试一下,看看你得到了多少ram,剩下了多少,以及这对你的主应用程序是否有用

    • Q: 专用缓存是否更适合我们的场景?

    • A: 专用缓存与共有缓存实际上是关于负载的。你…吗 在你的缓存和应用服务器上有足够的负载来证明 将缓存移出到一个单独的角色?看看这篇文章 对于Microsoft的建议: http://msdn.microsoft.com/en-us/library/windowsazure/hh914129.aspx