似乎EnyimMemcached (https://github.com/enyim/EnyimMemcached)和BeITMemcached (http://code.google.com/p/beitmemcached/)都是流行的.NET Memcached库。这两者都是相当活跃的项目正在开发中,并有超过一千次下载。试着找出该使用哪一种,但却发现了相互竞争的评论!我确实读过另一个相关的帖子,但在做出决定之前,我仍然想询问更多的人。
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客户端 )进行比较时,我们的客户端消耗的资源最少,性能最好。它还更严格地遵循memcached协议规范,具有最多的memcached特性,并且在实际代码大小上仍然要小得多。
因此,对于那些在这些或任何类似的方面有经验的人,您选择使用哪个客户端,以及您为什么选择选择的客户端?
谢谢,
雷。
发布于 2009-03-29 17:01:57
我们对两者进行了测试,并发现Enyim在我们的预期使用场景中表现最好:许多缓存对象(而不是数百万)缓存对象,以及数百万缓存-get请求(平均网站并发负载= 16-20请求)。
我们的性能因数是测量从发出请求到在调用服务器上的内存中初始化对象的时间。这两个库都可以支持这项工作,但是在我们的测试中,enyim客户端是首选的。
发布于 2011-03-14 16:56:50
发布于 2010-12-14 15:27:27
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实体是可序列化的。
https://stackoverflow.com/questions/694928
复制相似问题