相关疑难解决方法(0)

使用MemoryCache的多个实例

我想使用System.Runtime.Caching命名空间向我的应用程序添加缓存功能,并且可能希望在几个地方和不同的上下文中使用缓存.为此,我想使用几个MemoryCache实例.

但是,我在这里看到不鼓励使用多个MemoryCache实例:

MemoryCache不是单例,但是您应该只创建一些或者可能只创建一个MemoryCache实例,缓存项目的代码应该使用这些实例.

多个MemoryCache实例将如何影响我的应用程序?我发现这种奇怪,因为在我看来,在应用程序中使用多个缓存是一种非常常见的情况.

编辑:更具体地说,我有一个类应该为每个实例保留一个缓存.我应该避免使用MemoryCache并寻找不同的缓存解决方案吗?MemoryCache在这种情况下使用是否被认为是坏的,如果是这样,为什么?

.net c# caching .net-4.0 memorycache

68
推荐指数
2
解决办法
2万
查看次数

.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 实例是否可能会遇到任何问题?

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

c# caching memorycache .net-core asp.net-core-2.1

6
推荐指数
0
解决办法
1481
查看次数

标签 统计

c# ×2

caching ×2

memorycache ×2

.net ×1

.net-4.0 ×1

.net-core ×1

asp.net-core-2.1 ×1