【问题标题】:Multiple MemoryCache in ASp .Net Core Web APIASp .Net Core Web API 中的多个 MemoryCache
【发布时间】:2019-06-29 02:11:02
【问题描述】:

我有一个 ASP .Net Core 2.2。网络 API。我想通过使用 MemoryCache 来提高性能。但是,我需要缓存 2 种不同的类型,它们都使用整数键。一种是用户列表,另一种是组列表。

现在,我在 Startup.cs 文件中添加 MemoryCache 服务:

services.AddMemoryCache();

然后我使用依赖注入在两个不同的地方(在中间件和我编写的服务中)访问此缓存。

据我了解,这两个缓存都是同一个实例。因此,当我向其中添加各种用户和组时,由于它们都有整数键,因此会发生冲突。我该如何处理?我考虑过使用两个缓存 - 每种类型一个 - 但是(a)我不确定如何执行此操作,并且(b)我在某处读到不建议使用多个缓存。有什么想法吗?

【问题讨论】:

  • 使用复合键?例如。 “user_1”、“group_1”。
  • 谢谢你。是的,这确实是个好建议!

标签: asp.net-core asp.net-core-webapi memorycache


【解决方案1】:

是的,我之前也遇到过同样的问题,于是我创建了 MemoryCache 的扩展版本,允许我插入不同的“存储”。只需将您在“元数据”类型类中粘贴到缓存中的数据。我想类似于 ServiceDescriptors 如何将您的服务注册包装在 DI 中?

另外,具体回答“我考虑过使用两个缓存 - 每种类型一个”。这就是问题出现的地方,因为我相信 IMemoryCache 默认注册为单例

【讨论】:

  • 谢谢罗伯特。这也是一个非常好的建议。现在,我选择了更简单的 juunas 解决方案,但我很可能会改用你的方法。我必须说你的听起来像是更“优雅”的解决方案......
猜你喜欢
  • 2018-07-26
  • 2018-11-06
  • 2019-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-13
  • 1970-01-01
相关资源
最近更新 更多