首页 > 解决方案 > .NET Core 中的多个 MemoryCache 实例

问题描述

我们需要使用 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 实例可能会遇到任何问题吗?

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

标签: c#caching.net-coreasp.net-core-2.1memorycache

解决方案


推荐阅读