【问题标题】:MS Velocity vs Memcached for Windows?适用于 Windows 的 MS Velocity 与 Memcached?
【发布时间】:2010-09-28 17:01:50
【问题描述】:

我一直在关注微软最近将 Velocity 推广为一种分布式缓存解决方案,可以与 Memcached 等同类产品竞争。

我一直在寻找64bit version of Memcached for Windows for some time now,但没有成功,因为我正在处理的 ASP.Net MVC 项目的所有内容都是 64 位的,所以使用 64 位以外的任何东西都没有任何意义。

现在我们已经在 Beta 版中使用 ASP.NET MVC 对冲我们的赌注(希望很快 RTM),但是 StackOverflow 似乎并没有做得太糟糕,所以我对此的担忧有限。但 Velocity 仍然是一个非常未知的数量,并且在很长一段时间内仍将是 Beta(或 CTP) - 但它确实有 64 位!

在这种情况下,有没有人可以提供相关经验或观点?我们是否应该为 Velocity 等待时间——它是否足以与像 Memcached 这样的巨头竞争,还是应该花时间尝试让 64 位版本的 Memcached 运行?

【问题讨论】:

  • 好问题 - 我想听听对这两种产品都有经验的开发人员。
  • 有没有人有最近的经历?接受的答案基于 1 岁以上的信息。

标签: caching memcached appfabric distributed-caching


【解决方案1】:

如果我没记错的话,Memcached 有一些开源库,所以如果你想走 64 位路线,你可以不只是重新编译吗?

我在 Velocity 刚到货时就对其进行了评估,但得出的结论是它在那个阶段有点不成熟。能够在非 Windows 服务器上运行 memcached 也是一个好处。

【讨论】:

  • 你是对的,libevent 是它使用的东西,但不幸的是,当涉及到内存管理时,你不能直接将它编译为 64 位 - 需要知道如何进行一些调整- 不幸的是,我不是其中之一 :-) 否则,它会变得非常不稳定。
【解决方案2】:

如果您不介意为许可证付费,可以use Scale Out State Server, which I talk about in my answer to a similar question here。它们有 32 位和 64 位版本。

编辑:尽管产品名称如此,但它同时处理会话状态和分布式缓存。

【讨论】:

  • 缓存与我书中的 ASP.NET 会话跟踪不同。不过谢谢你的建议。
  • 不,会话需要可靠地保持,而缓存对象可以在缓存满时删除,所以它们是两个不同的东西。
【解决方案3】:

我们最近对 Velocity 和 Memcached 进行了大量比较。简而言之,我们发现 Velocity 比 Memcached 慢 3 到 5 倍,而且(更重要的是)它目前不支持多获取操作。所以目前,我建议使用 Memcached。另外,我们学到的另一个教训是分布式缓存中最慢的操作是序列化和反序列化(至少在 ASP.NET 中)。进程内 ASP.NET 缓存的速度要快几个数量级。因此,您必须更加谨慎地选择缓存策略。

【讨论】:

  • Velocity 确实提供了更多的特性(锁定、复制、对象标记等对性能有影响的特性)——通常,决策不仅仅是关于缓存的原始 put/get 性能
  • @pcawa27:那么您应该问自己是否需要缓存或远程分布式内存系统。两个不同的问题。
  • 需要注意的是,在最后的位中添加了一个multi-get操作,BulkGet。
  • 这里是 AppFabric BulkGet 的参考。目前仅支持区域和not at named cache 级别。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 2016-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-13
相关资源
最近更新 更多