缓存解决方案

Posted

技术标签:

【中文标题】缓存解决方案【英文标题】:Caching Solutions 【发布时间】:2011-03-01 23:39:17 【问题描述】:

有没有人对 AppFabric 和 NCache 或 AppFabric 和 ScaleOut 进行过彻底的比较?我们目前正在寻求实施 AppFabric、NCache 或 ScaleOut 以在地理位置较远的位置进行分布式缓存,我想知道将它们并排比较的任何人的想法。我很欣赏许多人使用其中一种,并告诉我为什么他们选择的解决方案很棒,但我真的在寻找两种产品的比较。诸如 AppFabric 做得不好或做得不好(如果有的话)之类的事情,部分是从功能的角度来看,但也从开发人员的角度来看。与另一个相比,使用其中一个更好、更容易、更灵活、更强大等。

有很多我可以比较的功能列表,但我真的在寻找可能与我们处于相似位置并执行过我们即将启动的评估的人进行比较,这会给我们一些我们这样做的时候值得深思。

提前致谢。

【问题讨论】:

+1 好问题,但 AppFabric 仅在本周上线,我担心没有人能够进行深入比较。 谢谢菲尔,这正是我所担心的。通常有很多比我更聪明、更热心的人,所以我仍然充满希望! 我们目前有使用 ScaleOut 的会话解决方案的系统,并且由于奇怪的自动配置问题而在维护操作状态时遇到了许多问题,但一旦我们解决了这些问题(一年后),我必须说从那以后它运行良好。不过,我对其他任何一种解决方案一无所知。 【参考方案1】:

这里是NCache and Appfabric的功能之间的一个很好的比较

【讨论】:

【参考方案2】:

作为一个更成熟的产品,NCache 拥有许多 Velocity/AppFabric 所没有的更高级的缓存功能——请查看他们的网站以进行一些“营销”比较。

但是,我们在对 NCache 进行故障排除以及从他们的支持/工程团队获得更多关于其应用程序某些行为的可见性方面遇到了许多问题。鉴于此,加上与 AppFabric 相比的成本,我不确定我是否会推荐 NCache——至少,我们正在重新评估我们的缓存提供程序。

我对 Velocity/AppFabric 的不满/抱怨是发布计划缓慢。好像他们永远在 CTP 中。当然,微软可以仅凭价格就碾压 NCache。现在有像 NorthScale (memcached) 这样的玩家正在加入竞争,我认为这也值得考虑。很大程度上取决于您希望在应用程序中使用缓存的目的。

【讨论】:

【参考方案3】:

最常用的是Memcached。当然。 我们目前开始使用 AppFabric 作为我们的 dcache,因为它可以轻松集成到我们的 .net 解决方案中,并且具有我们想要使用的良好功能集。

如果您只是进行基本的 dcaching,请对缓存本身进行抽象(或使用 .net 4 System.Runtime.Caching.ObjectCache),这样如果您想进行更改,您是安全的。或想对更多解决方案进行压力测试。

此外,根据您的应用架构,考虑使用更多 DCache 的实体/实例,因为不同的部分可能有利于不同的系统。

【讨论】:

【参考方案4】:

看起来我们需要比 Velocity 提供的更高级的功能,因此它可以是 NCache 或 ScaleOut。两者都有很好的理由,我们只需要整理这些。我们没有 Unix 资源,所以 memcached 已经出局了。我知道有一个 Windows 端口,但了解 memcached 的同事告诉我,它有些错误,如果您打算费心走 memcached 路径,您真的应该努力选择 Unix 版本。

【讨论】:

Re:memcached,知道它本身就很有用。坦率地说,它证实了我对 Windows 上的 memcached 的印象(或者至少是我的偏见 ;-))。【参考方案5】:

有些人可能会争辩说这是一种有偏见的比较,但值得回顾..

http://www.alachisoft.com/comparison/ncache-vs-appfabric.html

PDF 有完整的评论。

http://www.alachisoft.com/downloads/comparison/ncache-vs-appfabric.pdf

【讨论】:

以上是关于缓存解决方案的主要内容,如果未能解决你的问题,请参考以下文章

Redis缓存击穿,缓存穿透,缓存雪崩解决方案(附代码)

Redis缓存击穿,缓存穿透,缓存雪崩解决方案(附代码)

@Cacheable对象内部调用缓存无效解决方案

实战问题-- 缓存穿透,缓存击穿和缓存雪崩的区别以及解决方案

Redis缓存穿透缓存击穿缓存雪崩产生原因及解决方案

Redis缓存击穿,缓存穿透,缓存雪崩,附解决方案