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缓存?
请添加更多专业人士如果你觉得我忘了一些重要的事情,那就有利可图。
答案 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)