当我们有 IDistributedCache 时,为什么要使用 IMemoryCache?

San*_*dro 6 .net-core

.Net Core 为接口 (MemoryCacheDistributedMemoryCache)提供内存中实现,但让我们假设我们IDistributedCache的应用程序有一个工作实现。

什么时候仍然使用IMemoryCache. 在什么情况下它比在分布式缓存中缓存数据更有帮助或更受欢迎?

Laz*_*iya 5

我正在寻找相同的内容,并在 github 问题中找到了答案:

它们具有根本不同的语义。MemoryCache 可以存储活动对象,分布式缓存不能,对象必须被序列化。分布式缓存可能是开箱即用的,对它的调用可能会失败或需要很长时间,因此获取和设置应​​该是异步的,MemoryCache 始终在内存中并且速度很快。分布式缓存可以与存储断开连接,因此接口应该考虑到这一点。

https://github.com/aspnet/Caching/issues/220#issuecomment-241229013