我看到开发团队中有些人使用Memcached来缓存数据库结果,而不是内置的.NET Framework Cache系统。我不明白为什么他们会使用这个特定的缓存。
也许表现更好。
无论如何,使用Memcached(而不是本机.NET Cache)是否有任何真正的优势?
答案 0 :(得分:24)
Memcached是分布式的 - 关键是这意味着如果我有一组服务器访问缓存,它们实际上都是从同一缓存读取和写入。内置的.Net缓存没有此功能(至少我知道ASP.Net没有)。
由于每台机器都有自己独立的缓存,这意味着(例如):
Memcached没有这些问题 - 一旦条目放入缓存中,集群中的所有计算机都可以检索相同的缓存项。使高速缓存中的条目无效使每个人都无效。
<强>缺点强>
如果您的应用程序需要在一组计算机上运行,那么您很可能会从分布式缓存中受益,但是如果您的应用程序只需要在一台计算机上运行,那么您将无法从使用中获得任何好处分布式缓存,使用内置的.Net缓存可能会更好。
答案 1 :(得分:2)
Memcached的更好比较实际上是Azure App Fabric Caching,它是随.NET 4和Azure添加的。它是一种分布式群集缓存解决方案,适用于群集和云计算。然而,Memcached已经存在了很长一段时间(2003年我认为),所以已经很成熟,并被认为是评判其他人的基准。 Memcached也被移植到几乎所有语言,并可以在Linux或Windows服务器上运行。 Azure缓存仍然相对较新,所以还没有多少人真正使用它。