38 votes

Quel client Memcached .NET utilisez-vous, EnyimMemcached ou BeITMemcached ?

Il semble que les deux EnyimMemcached ( http://memcached.enyim.com/ ) et BeITMemcached ( http://code.google.com/p/beitmemcached/ ) sont des bibliothèques Memcached .NET populaires. Toutes deux sont des projets raisonnablement actifs en cours de développement et comptent plus d'un millier de téléchargements. J'essaie de savoir laquelle utiliser mais j'ai trouvé des remarques concurrentes ! J'ai lu un autre article sur le sujet poste mais je veux quand même demander l'avis d'autres personnes avant de prendre une décision.

EnyimMemcached sur la page d'accueil de son projet ( http://memcached.enyim.com/ ), que

sur la base de nos tests de performance internes non divulgués et spécialement conçus à la main, nous sommes le client C# le plus rapide de tous les temps, utilisant une quantité négative de ressources système, qu'il s'agisse de mémoire ou de temps CPU

et

nous suivons la spécification du protocole de memcached aussi strictement que personne d'autre : même les gars de memcached nous demandent s'ils ne comprennent pas quelque chose.

Alors que BeITMemcached sur la page wiki de son projet ( http://code.google.com/p/beitmemcached/wiki/Features ) que

Nous avons effectué des tests fonctionnels et de performance approfondis du client BeIT Memcached et nous sommes convaincus qu'il fonctionne comme il le devrait. Lorsque nous avons comparé les performances avec celles de deux autres clients, le portage Java et le client Memcached de BeIT. Client memcached d'Enyim Notre client a consommé le moins de ressources et a obtenu les meilleures performances. Il suit également les spécifications du protocole memcached de manière plus stricte, possède le plus de fonctionnalités memcached, et est encore beaucoup plus petit en taille de code réelle.

Pour ceux qui ont de l'expérience dans ce domaine ou dans un domaine similaire, quel client avez-vous choisi d'utiliser et pourquoi avez-vous choisi celui que vous avez choisi ?

Merci,

Ray.

19voto

jro Points 5120

Nous les avons testés tous les deux et avons trouvé qu'Enyim était le plus performant pour notre scénario d'utilisation prévu : beaucoup (mais pas des millions) d'objets en cache, et des millions de requêtes cache-get (charge concurrentielle moyenne du site web = 16-20 requêtes).

Notre facteur de performance mesurait le temps entre la demande et l'initialisation de l'objet en mémoire sur le serveur appelant. Les deux bibliothèques auraient fait l'affaire, mais le client enyim a été préféré dans nos tests.

7voto

rpearsondev Points 71

Il existe une comparaison entre Enyim et BeIT à l'adresse suivante sysdot.wordpress.com/2011/03/08/memcached-clients-qui-sont-les-plus-best/

4voto

user403579 Points 41

La fonction Store() du client Eniym ne fonctionne pas toujours correctement. Cela arrive lorsque la clé n'est pas présente dans le cache, dans la plupart des cas après le redémarrage du service memcached. Cette 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 ...
        }

fonctionne à 50/50. L'entité T est [Serializable].

3voto

pablox Points 185

J'ai trouvé qu'Enyim était le meilleur outil. Il est facile à utiliser, fiable et rapide :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X