ASP.NET Core 中的分布式缓存标记帮助程序

彼得·凯尔纳

分布式缓存标记帮助程序通过将 ASP.NET 核心应用的内容缓存到 分布式缓存源来显著提高 ASP.NET 核心应用的性能。

有关标记帮助程序概述,请参阅 ASP.NET Core 中的标记帮助程序。

分布式缓存标记帮助程序继承自与缓存标记帮助程序相同的基类。 所有 缓存标记帮助程序 属性都可用于分布式标记帮助程序。

分布式缓存标记帮助程序使用 构造函数注入。 该 IDistributedCache 接口将传递到分布式缓存标记帮助程序构造函数中。 如果未在IDistributedCache文件或ProgramStartup.ConfigureServices中创建Startup.cs的具体实现,分布式缓存标记帮助程序将使用与缓存标记帮助程序相同的内存中提供程序来存储缓存数据。

分布式缓存标记辅助程序属性

与缓存标记帮助程序共享的属性

  • enabled
  • expires-on
  • expires-after
  • expires-sliding
  • vary-by
  • vary-by-cookie
  • vary-by-culture
  • vary-by-header
  • vary-by-query
  • vary-by-route
  • vary-by-user

如果未expires-slidingexpires-after设置属性值,则expires-on默认值为 30 秒。 否则,该值在 SQL Server 缓存服务中的默认时间为 20 分钟。

分布式缓存标记帮助程序继承自缓存标记帮助程序所在的同一类。 有关这些属性的说明,请参阅 缓存标记帮助程序

姓名

属性类型 Example
String my-distributed-cache-unique-key-101

name 必需。 该 name 属性用作每个存储缓存实例的键。 与根据页面名称和位置Razor为每个实例分配缓存密钥的Razor缓存标记帮助程序不同,分布式缓存标记帮助程序仅将其键基于属性name

示例:

<distributed-cache name="my-distributed-cache-unique-key-101">
    Time Inside Cache Tag Helper: @DateTime.Now
</distributed-cache>

分布式缓存标记助手 IDistributedCache 实现

ASP.NET Core 内置了两个 IDistributedCache 实现。 一个基于 SQL Server,另一个基于 Redis。 第三方实现也可用,例如 NCache。 这两种实现都涉及在IDistributedCache文件或Program类中设置Startup的实例。

没有专门与使用任何实现 IDistributedCache关联的标记属性。

有关详细信息,请参阅 ASP.NET Core 中的分布式缓存

其他资源