龙空技术网

ASP.NET Core 中的缓存

StevenWSalary 34

前言:

此刻大家对“net程序集缓存文件”大体比较关心,朋友们都需要剖析一些“net程序集缓存文件”的相关内容。那么小编也在网络上汇集了一些关于“net程序集缓存文件””的相关资讯,希望姐妹们能喜欢,朋友们一起来了解一下吧!

ASP.NET Core 中的缓存

.Net Core 缓存

1,内存中缓存

内存中缓存使用服务器内存来存储缓存的数据。这种类型的缓存适用于会话亲和性的单个服务器或多个服务器。会话亲和性也称为“粘滞会话”。会话亲和性是指来自客户端的请求总是路由到同一个服务器进行处理。

ASP.NET Core 支持多个不同的缓存。最简单的缓存基于 IMemoryCache,IMemoryCache 表示存储在Web服务器内存中的缓存。

内存中缓存可以存储任何对象。分布式缓存接口仅限于 byte[]。内存中和分布式缓存将缓存项存储为键值对。

2,分布式缓存

当应用托管在云或服务器场中时,使用分布式缓存将数据存储在内存中。 缓存在处理请求的服务器之间共享。 如果客户端的缓存数据可用,则客户端可以提交由组中的任何服务器处理的请求。 ASP.NET Core 适用于 SQL Server 、RedisNCache 分布式缓存。

分布式缓存是由多个应用服务器共享的缓存,通常作为访问它的应用服务器的外部服务进行维护。 分布式缓存可以提高 ASP.NET Core 应用的性能和可伸缩性,尤其是当应用由云服务或服务器场托管时。

与其他将缓存数据存储在单个应用服务器上的缓存方案相比,分布式缓存具有多个优势。

当分发缓存数据时,数据:

在多个服务器的请求之间保持一致(一致性)。在进行服务器重启和应用部署后仍然有效。不使用本地内存。

3, 缓存标记帮助程序

使用缓存标记帮助程序缓存来自MVC 视图或Razor 页面的内容。缓存标记帮忙程序使用内存中缓存来存储数据。

4, 分布式缓存标记帮助程序

使用分布式缓存标记帮助程序在分布式云或Web方案中缓存来自MVC 视图或Razor页面的内容。分布式缓存标记帮助程序使用SQL Server、Redis或NCache 来存储数据.

5,响应缓存

响应缓存中间件:

启用基于 HTTP 缓存头的缓存服务器响应。 实现标准 HTTP 缓存语义。 像代理一样基于 HTTP 缓存标头进行缓存。通过对 Razor Pages 等 UI 应用没有好处,因为浏览器通常会设置阻止缓存的请求头。 ASP.NET Core 7.0 及更高版本中提供的输出缓存有利于 UI 应用。 使用输出缓存,配置可决定了应独立于 HTTP 标头缓存的内容。对于来自满足缓存条件的客户端的公共 GET 或 HEAD API 请求可能有用。

若要测试响应缓存,请使用 FiddlerPostman 或其他可以显式设置请求标头的工具。 显式设置标头是测试缓存的首选项。

6, 输出缓存

输出缓存中间件支持缓存 HTTP 响应。 输出缓存与响应缓存的不同之处包括以下方面:

缓存行为可在服务器上配置。响应缓存行为由 HTTP 标头定义。 例如,当你使用 Chrome 或 Edge 访问网站时,浏览器会自动发送标头 Cache-control: max-age=0 。 此标头可有效地禁用响应缓存,因为服务器遵循客户端提供的说明。 即使服务器有新的缓存响应,也会为每个请求返回一个新响应。 使用输出缓存时,客户端不会替代你在服务器上配置的缓存行为。缓存存储介质是可扩展的。默认情况下使用内存。 响应缓存仅限于内存。可以通过编程方式使所选缓存条目失效。响应缓存对 HTTP 标头的依赖使你无法使缓存条目失效。资源锁定可降低缓存踩踏和惊群的风险。当撤销常用缓存项,并且尝试同时重新填充同一缓存条目的请求过多时,会发生缓存标记雷霆的牧区 是类似的:对缓存条目中尚不存在的相同响应的突发请求。 资源锁定可确保给定响应的所有请求都等待第一个请求填充缓存。 响应缓存没有资源锁定功能。缓存重新验证可最大程度地减少带宽使用量。缓存重新验证 意味着服务器可以返回 304 Not Modified HTTP 状态代码,而不是缓存的响应正文。 此状态代码通知客户端,对请求的响应与之前收到的响应没有变化。 响应缓存不会进行缓存重新验证。

标签: #net程序集缓存文件 #netcache永久缓存