我有多个 Windows 服务在运行,它们在不同的进程上,System.Runtime.Caching.MemoryCache 是这些进程通用的还是每个进程都有单独的实例?
如果没有,是否有一种缓存机制可以在服务器的 .net 上共享相同的缓存命名空间实例。
我不是在寻找像redis这样的分布式缓存。我想在一个服务器内共享内存缓存,但要与多个进程共享,这样速度要快得多,而不是通过网络连接到另一台服务器并获取数据、反序列化等。
最佳答案
System.Runtime.Caching.MemoryCache
只能在单个进程中使用。您最好的解决方案是在单个服务器(您运行应用程序的服务器)上使用分布式缓存(如 Redis、Memcache 等)。
C# 对象不能直接跨进程空间传递,因此不可避免地会发生某种序列化。
关于c# - System.Runtime.Caching.MemoryCache 是否在同一服务器中跨进程共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41949040/