38

似乎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 功能,并且实际代码大小仍然小得多。

因此,对于那些在这些或任何类似方面有经验的人,您选择使用哪个客户端,以及您可能为什么选择您选择的客户端?

谢谢,

射线。

4

4 回答 4

19

We tested both and found Enyim to perform the best for our expected usage scenario: many (but not millions) cached objects, and millions of cache-get requests (average web site concurrency load = 16-20 requests.)

Our performance factor was measuring the time from making the request to having the object initialized in memory on the calling server. Both libraries would have sustained the job, but the enyim client was preferred in our testing.

于 2009-03-29T17:01:57.203 回答
7

There is a comparison between Enyim and BeIT at sysdot.wordpress.com/2011/03/08/memcached-clients-which-ones-best/

于 2011-03-14T16:56:50.537 回答
4

Eniym client's Store() sometimes does not work correctly. It happens when key does not present in cache, for most cases after memcached service restart. This construction:

        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 ...
        }

works 50/50. T entity is [Serializable].

于 2010-12-14T15:27:27.417 回答
3

I have found Enyim to work the best. It is easy to use, reliable and fast :)

于 2009-04-23T15:41:36.140 回答