我目前正在研究分布式缓存解决方案。
如果钱不是问题,你会推荐哪个?
在您的选择中,我只尝试过使用 memcached,即便如此,它也不是 C#/.NET 库。
然而,memcached 技术已经得到了很好的证明,只要看看使用它的网站:
...该系统被几个非常大的知名网站使用,包括YouTube、LiveJournal、Slashdot、Wikipedia、SourceForge、ShowClix、GameFAQs、Facebook、Digg、Twitter、Fotolog、BoardGameGeek、NYTimes.com、deviantART、Jamendo、Kayak 、VxV、ThePirateBay和 Netlog。
我真的没有理由去看其他解决方案。
祝你好运,布赖恩G。
人们在评估解决方案时通常会忘记的一件事是专门的支持。
如果您使用 memcached,那么您将一无所获,因为您使用的是不受任何供应商支持的完全开源软件。是的,核心平台经过了多年的良好测试,但 C# 客户端库可能要少得多。是的,您可能会在论坛等上获得一些帮助,但不能保证回复会很快,也不能保证您会得到任何回复。
我不知道对 NCache 或 ScaleOut 缓存的支持是什么样的,但在选择它们之前值得了解一下。在过去的几年里,我与许多公司打交道以获得支持,而支持通常外包给那些甚至不在公司工作的人(没有机会接触到在公司工作的人),这意味着没有机会得到及时支持的质量。另一方面,我还与那些将严重问题上报给合适的人、非常快速地解决重要问题并为您提供个人补丁的公司打过交道。
其中一家公司是微软,这也是我们使用他们的软件作为我们平台的原因之一。如果您有生产问题,那么您可以依靠他们的支持。所以我倾向于在此基础上选择 Velocity。
不过,可能最重要的事情是,无论您选择哪种缓存,都将其抽象到您自己的接口(例如 ICache)后面,这将允许您评估其中的一些,而不会阻碍其余的开发过程。这意味着即使您最初的决定对您不起作用,您也可以在不破坏大部分应用程序的情况下切换它。
(注意:我在这里假设所有缓存都具有足够的功能来支持您需要的功能,并且所有缓存都具有足够且大致相似的性能。这可能不是一个有效的假设,在这种情况下您需要提供在你的问题中更详细地说明为什么它不是)。
您还可以将Oracle Coherence添加到您的列表中。它同时具有 .NET 和 Java API。
来自微软:App Fabric 商业:NCache 开源:RIAK
我们尝试了几次,最后我们使用了 asp.net/mvc 的 SQL 会话提供程序,是的,连接到数据库的开销很大,但我们的数据库服务器非常快,而且网络场有很多容量,所以不是问题。
对 RIAK 非常感兴趣,拥有 .net 客户端并被 Yahoo 使用 - 可以扩展到许多 manu 服务器