asp.net-mvc - Azure Redis 缓存 VS 应用程序缓存

标签 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 缓存而不是应用程序缓存。

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

当您需要将 Azure Redis 缓存用于多个服务时,它非常有用,但大多数情况下我只需要缓存一项服务。

为什么应该使用 Azure Redis 缓存?

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

最佳答案

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

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

Redis 具有内置 session 状态或输出缓存提供程序,有助于快速将网站与 Azure Redis 缓存连接起来。

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

最后但并非最不重要的一点是,如果您的应用程序和 Redis 缓存位于同一个 Azure 区域,并且您遵循一些有关连接管理和连接的最佳实践,那么您的大多数请求的延迟可能会达到 1 毫秒或更短。有效负载大小。

关于asp.net-mvc - Azure Redis 缓存 VS 应用程序缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39146558/

相关文章:

c# - 为了解决 GA 问题而构建可靠的服务与 Actor

node.js - Azure函数( Node 运行时)找不到模块

java - 如何在Ehcache中使用SimpleCachingPageFilter更新或失效缓存?

mongodb - Doctrine MongoDB 结果缓存

c# - Fluent 验证中的本地化消息 (MVC3)

asp.net-mvc - 重命名 ASP.NET MVC 项目时出错

jquery - "A circular reference was detected while serializing an object of type ' 系统.Reflection.RuntimeModule '"

asp.net-mvc - 如何使用继承partialviewresult的类设置模型

ruby-on-rails - Rails 3 Carrierwave-azure Azure::Core::Http::HTTPError OutOfRangeInput (400):请求输入之一超出范围

python - Django 中所有 Celery worker/内存缓存的全局可访问对象