您使用哪个 .NET Memcached 客户端,EnyimMemcached 与 BeITMemcached? [关闭]
Posted
技术标签:
【中文标题】您使用哪个 .NET Memcached 客户端,EnyimMemcached 与 BeITMemcached? [关闭]【英文标题】:Which .NET Memcached client do you use, EnyimMemcached vs. BeITMemcached? [closed] 【发布时间】:2010-10-16 05:55:41 【问题描述】:似乎 EnyimMemcached (https://github.com/enyim/EnyimMemcached) 和 BeITMemcached (http://code.google.com/p/beitmemcached/) 都是流行的 .NET Memcached 库。两者都是正在开发中的相当活跃的项目,下载量超过一千次。试图找出使用哪一个,但发现了相互竞争的言论!我确实阅读了另一个相关的post,但在做出决定之前仍然想询问更多人。
EnyimMemcached 在其项目主页 (https://github.com/enyim/EnyimMemcached) 上声称,
根据我们未公开的特制内部性能测试,我们是有史以来最快的 C# 客户端,使用负数的系统资源,无论是内存还是 CPU 时间
和
我们严格遵守 memcached 的协议规范:即使是 memcached 的人也会问我们他们是否不理解某些内容
虽然 BeITMemcached 在其项目 wiki 页面 (http://code.google.com/p/beitmemcached/wiki/Features) 上声称
我们对 BeIT Memcached 客户端进行了广泛的功能测试和性能测试,我们对它能够正常工作感到满意。当我们将性能与其他两个客户端(java 端口和Enyim memcached client)进行比较时,我们的客户端消耗的资源最少,性能最好。它也更严格地遵循 memcached 协议规范,拥有最多的 memcached 特性,并且实际代码量仍然小得多。
那么对于那些在这些或任何类似方面有经验的人,您选择使用哪个客户端以及您可能为什么选择您选择的客户端?
谢谢,
雷。
【问题讨论】:
Enym 现已移至 GitHub:github.com/enyim/EnyimMemcached 【参考方案1】:我们对两者都进行了测试,发现 Enyim 在我们预期的使用场景中表现最好:许多(但不是数百万)缓存对象和数百万个缓存获取请求(平均网站并发负载 = 16-20 个请求。)
我们的性能因素是测量从发出请求到在调用服务器的内存中初始化对象的时间。这两个库都可以维持这项工作,但在我们的测试中首选 enyim 客户端。
【讨论】:
【参考方案2】:在sysdot.wordpress.com/2011/03/08/memcached-clients-which-ones-best/有一个 Enyim 和 BeIT 的比较
【讨论】:
【参考方案3】:Eniym 客户端的 Store() 有时无法正常工作。当缓存中不存在密钥时会发生这种情况,大多数情况下是在 memcached 服务重新启动后。这个结构:
T val = _client.Get<T>(key);
if (val == null)
// ... filling val variable ...
var result = _client.Store(StoreMode.Add, key, val);
// ... result can be false, sometimes ...
工作 50/50。 T 实体是 [Serializable]。
【讨论】:
您是否找出导致此问题的原因或有解决方法? 同上。你能告诉我们问题是什么吗?我猜这与 [Serializeable] 有关,但我很想听听你关于这个的更多信息 :) 这是一个被严重低估的问题。如果您指定过期超时/日期,这尤其常见。【参考方案4】:我发现 Enyim 工作得最好。 它易于使用、可靠且快速:)
【讨论】:
以上是关于您使用哪个 .NET Memcached 客户端,EnyimMemcached 与 BeITMemcached? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Windows下Memcached在.Net程序中的实际运用(从Memcached客户端Enyim的库的编译到实际项目运用) 转发