.net 我可以使用HttpRuntime.Cache作为分布式缓存吗?

.net 我可以使用HttpRuntime.Cache作为分布式缓存吗?,.net,caching,.net,Caching,自2011年11月起,Stack Overflow的知名成员Darin Dimitrov声称,emphasis mine: 缓存不仅仅是一个简单的字典。它提供线程安全和缓存过期策略。它提供了使用自定义实现的可能性,并从分布式缓存中获益,这在web场中很有用 另一方面,关于分布式缓存的一些更具体的问题表明HttpRuntime.Cache不是正确的选择: 不,您不能共享内置ASP.NET缓存[…] 问题: 我们的网站是用ASP.NET 4.0[…]编写的,使用标准的HttpRuntime.

自2011年11月起,Stack Overflow的知名成员Darin Dimitrov声称,emphasis mine:

缓存不仅仅是一个简单的字典。它提供线程安全和缓存过期策略。它提供了使用自定义实现的可能性,并从分布式缓存中获益,这在web场中很有用

另一方面,关于分布式缓存的一些更具体的问题表明
HttpRuntime.Cache
不是正确的选择:

  • 不,您不能共享内置ASP.NET缓存[…]

  • 问题:

    我们的网站是用ASP.NET 4.0[…]编写的,使用标准的
    HttpRuntime.Cache
    object[…]

    Darin Dimitrov 2011年12月的答复:

    memcached和ASP.NET提供程序是一种流行的选择。请记住,在.NET 4.0中,推荐的缓存方法是使用新的
    ObjectCache
    而不是
    HttpRuntime.Cache

  • 不,缓存是每个应用程序(或者可能是应用程序池-我必须检查一下)

正如我几年前使用.NET缓存时回忆到的那样,
HttpRuntime.Cache
可以与实际缓存的不同实现相结合:内存缓存,但也可以是任何自定义的提供程序,例如Redis的提供程序。这可能是在配置级别完成的,这样使用
HttpRuntime.Cache
的实际代码就不会关心缓存数据的存储位置和存储方式(并且可以在不修改源代码的情况下从提供程序切换到另一个提供程序)

如果这是真的,我想这促使Darin Dimitrov在其原始答案中建议将
HttpRuntime.Cache
作为分布式缓存的解决方案。从那时起,微软或第三方就没有真正实现分布式缓存提供程序,因此
HttpRuntime.Cache
似乎越来越不有趣了


我的理解正确吗?

这是对一些难以追踪的信息的很好的总结。如果可以的话,我会把这个问题标为答案。