Java Memcached Client

Quel est le meilleur client Java memcached et pourquoi?

En tant qu’auteur de spymemcached , je suis un peu partial, mais je dirais que c’est le mien pour les raisons suivantes:

Conçu à partir de zéro pour être non bloquant partout possible.

Lorsque vous demandez des données, émettez un ensemble, etc., il y a une petite insertion de queue simultanée et vous obtenez un avenir pour bloquer les résultats (avec des méthodes pratiques pour les cas courants tels que get).

Optimisé agressivement

Vous pouvez en savoir plus sur ma page d’ optimisations , mais je fais de l’optimisation complète de l’application.

Je fais encore assez bien dans les micro-benchmarks, mais pour comparer les autres clients, il faut créer des schémas d’utilisation irréalistes (par exemple, attendre la réponse à chaque opération ou créer des verrous les empêche d’optimiser les paquets) ).

Testé de manière obsessionnelle

Je maintiens une suite de tests assez rigoureuse avec des rapports de couverture pour chaque version.

Les bogues continuent de glisser, mais ils sont généralement mineurs et le client ne cesse de s’améliorer. 🙂

Bien documenté

La page d’ exemples fournit une introduction rapide, mais le javadoc est extrêmement détaillé.

Fournit des abstractions de haut niveau

J’ai une interface Map pour le cache ainsi qu’une abstraction CAS fonctionnelle. Le binary et le texte supportent tous deux un mécanisme incrément par défaut (fourni par le protocole binary, mais plutôt délicat dans le texte).

Continue avec les spécifications

Je fais beaucoup de travail sur le serveur lui-même, alors je continue à suivre les changements de protocole.

J’ai réalisé les premières implémentations de serveurs de protocoles binarys (à la fois un serveur de test et dans memcached), et ce fut le premier client prêt à la production à le prendre en charge et le fait de première classe.

J’ai également pris en charge plusieurs algorithmes de hachage et algorithmes de dissortingbution de nœuds, qui sont tous testés pour chaque version. Vous pouvez faire un hachage cohérent de stock ketama, ou un dérivé utilisant FNV-1 (ou même le hachage de chaîne natif de java) si vous voulez de meilleures performances.

Je crois que le client java memcached est le meilleur client.

Caractéristiques

  • Prise en charge du protocole binary . moyen le plus rapide d’accéder à la clé / valeur stockée dans le serveur memcached.
  • Prise en charge du protocole UDP . Vous pouvez définir la clé avec le protocole TCP et obtenir avec le protocole UDP. En fait, certaines grandes entresockets font comme ça.
  • Supporte la sérialisation et la désérialisation personnalisées.
  • Pool de connexions avec NIO et tampon direct. Augmentez dynamicment les connexions lorsque vous ne l’utilisez plus pour le pool de connexions.

Performance

  • Reportez-vous aux performances pour un test de performances des clients java memcached existants.
  • Désérialisation lors de la réception de la réponse
  • Réglage des performances dans chaque ligne du code source.

Si ce sont des nombres toujours valides, alors … http://xmemcached.googlecode.com/svn/trunk/benchmark/benchmark.html

Il y a environ un an, lorsque je devais utiliser un client java memcached, le connecteur spymemcached était décrit comme une API optimisée avec plus de fonctionnalités. Depuis lors, il y a eu un certain nombre de nouvelles versions du client memcached.

FWIW, le client espion a parfaitement fonctionné pour moi.

J’ai utilisé SpyMemcached et je dois admettre que c’est le meilleur disponible sur le marché, avec de nombreuses améliorations plus récentes.

Il y a le client memcached pour Java et spymemcached . Pas beaucoup d’expérience avec l’un ou l’autre cependant.

S’il vous plaît essayez xmemcached , il est également basé sur nio et ont quelques fonctionnalités puissantes.