.NET Core 中的多个 MemoryCache 实例

h-r*_*rai 6 c# caching memorycache .net-core asp.net-core-2.1

我们需要使用 MemoryCache 缓存两种类型的数据。

  1. 安全令牌
  2. 书(例如)

我们不想在安全令牌缓存上设置 SizeLimit,因为这意味着缓存中的每个条目都需要根据.NET Core doco指定大小。这是因为安全令牌是由我们无法控制的已编译 nuget 类型插入的。

因此,创建另一个 MemoryCache 实例来仅保存 Book 项目是有意义的,这样我们就可以在向缓存添加书籍时设置项目的大小限制和大小。

此外,.NET Core 文档建议开发人员需要管理缓存的限制。

我在这里这里读过相互冲突的帖子,它们支持/拒绝多个内存缓存实例。此外,这些与 .NET 有关,与 .NET Core 无关。

由于 .NET Core 的 MemoryCache 需要开发人员管理缓存项的逐出,并且考虑到缓存中的书籍比令牌多得多,因此我们倾向于拥有 2 个 MemoryCache 实例。

  1. 安全令牌 - 没有任何大小限制,在已编译的 nuget 包中具有设置器
  2. 书籍 - 有大小限制,因为所有设置器都在项目代码内

在 .NET Core Web 应用程序中使用多个 MemoryCache 实例是否可能会遇到任何问题?

我们使用.NET Core 2.1Microsoft.Extensions.Caching.Memory v=2.1.2.0