Azure Redis缓存VS应用程序缓存

时间:2016-08-25 13:23:12

标签: asp.net-mvc azure caching

[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 Cache而不是应用程序缓存的原因。

如果由于缓存占用太多资源而导致性能出现问题,您可以随时为应用添加更多电量,而不是扩展缓存,这会更昂贵。

当你需要将它用于多个服务时,Azure Redis Cache很不错,但大多数情况下我只需要缓存一个服务。

我为什么要使用Azure Redis缓存?

请添加更多专业人士如果你觉得我忘了一些重要的事情,那就有利可图。

2 个答案:

答案 0 :(得分:1)

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

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

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

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

最后但并非最不重要的是,如果您的应用程序和Redis缓存位于相同的azure区域,如果您遵循一些关于连接管理的最佳实践,那么对于您的大多数请求,您可以获得大约1 ms的延迟或更少的延迟。有效载荷大小

答案 1 :(得分:0)

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