【问题标题】:Azure Redis Cache VS Application CacheAzure Redis 缓存 VS 应用程序缓存
【发布时间】:2016-08-25 13:23:12
【问题描述】:

[Azure Redis 缓存]

ConnectionMultiplexer connection = ConnectionMultiplexer.Connect(string.Format("{0},abortConnect=false,ssl=true,password={1}", "reditCacheEndpoint", "reditCachePassword"));

IDatabase cache = connection.GetDatabase();

cache.StringSet("time", DateTime.Now, TimeSpan.FromMinutes(30));

优点

可用于 Azure 中的所有程序

不影响应用程序的性能

缺点

[应用缓存]

System.Web.HttpContext.Current.Cache["time"] = DateTime.Now;

优点

更快

免费

缺点

只能在您当前的应用中使用

影响应用程序的性能


我真的不明白为什么应该使用 Azure Redis 缓存而不是应用程序缓存。

如果由于缓存占用过多资源而导致性能出现问题,您可以随时为您的应用添加更多功能,而不是扩大缓存,那样会更昂贵。

当您需要将 Azure Redis 缓存用于一项以上的服务时,它是不错的选择,但大多数情况下,我只需要为一项服务进行缓存。

为什么要使用 Azure Redis 缓存?

如果您觉得我忘记了一些重要的事情,请补充更多优点和缺点。

【问题讨论】:

  • 我认为更重要的原因是,如果您正在规划应用程序的可扩展性。

标签: asp.net-mvc azure caching


【解决方案1】:

Redis 不仅仅是一个键/值存储。它支持许多data types,如排序集、列表、哈希集、字符串等。如果您的应用程序需要使用此类,您将从 Redis 中受益。

如果您的应用程序要在本地访问云中的 Redis,那么它在延迟方面肯定比在本地机器上运行 Redis 或应用程序缓存要慢。

Redis 具有内置的会话状态或输出缓存提供程序,可帮助您快速将您的网站与您的 Azure Redis 缓存连接起来。

如果您有一个应用程序实例,应用程序缓存就可以正常工作。一旦你向外扩展,你就需要一个分布式缓存。在这种情况下,VM 中的 Redis 或 Azure Redis 缓存将是您应该考虑的解决方案。

最后但并非最不重要的一点是,如果您的应用程序和 Redis 缓存位于同一个天蓝色区域,如果您遵循一些连接管理的最佳实践和有效载荷大小。

【讨论】:

    【解决方案2】:

    您应该使用 Redis,因为它不仅可以缓存对象,还可以缓存页面的输出。此外,Redis 在 Azure 服务器上进行了复制,这意味着在重新启动或任何其他问题的情况下您不会丢失状态。我强烈建议使用 Redis 缓存(Azure Redis 缓存或虚拟机中的 Redis)

    【讨论】:

    • 页面输出缓存也可用于 mvc 中的页面,使用操作上方的 OutputCache 属性。很高兴您在重启或任何其他问题的情况下不会丢失状态,但我没有看到我为此服务付费..
    猜你喜欢
    • 1970-01-01
    • 2015-11-11
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 2019-05-17
    • 2013-10-28
    相关资源
    最近更新 更多