52 votes

Java Client Memcached

Qui est le meilleur Java client memcached, et pourquoi?

57voto

Dustin Points 35205

Comme l'auteur de spymemcached, je suis un peu biaisé, 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, un problème à régler, etc... il y a un petit simultanées de file de l'insertion, et vous obtenez un Avenir à bloc sur les résultats (avec quelques méthodes pratiques pour la commune de tels cas).

Optimisé De Manière Agressive

Vous pouvez en lire plus sur mon optimisations de la page, mais je ne tout-optimisation de l'application.

Je n'ai toujours assez bien dans le micro-benchmarks, mais pour comparer équitablement contre l'autre client, vous avez à inventer irréaliste modes d'utilisation (par exemple, l'attente de la réponse à chaque opération de l'ensemble ou de construction d'écluses autour obtient pour les empêcher de faire des paquets d'optimisation).

Testé De Manière Obsessionnelle

Je maintiens une assez rigoureux suite de tests avec des rapports de couverture sur chaque version.

Les Bugs encore de glissement, mais ils sont généralement assez mineur, et le client ne cesse de s'améliorer. :)

Bien Documenté

Les exemples à la page fournit une introduction rapide, mais la javadoc va un énorme détail.

Fournit des Abstractions

J'ai une Carte d'interface pour le cache ainsi que d'une fonctionnelle CAS de l'abstraction. À la fois binaire et texte à l'appui d'une aug-avec-mécanisme de défaut (fourni par le protocole binaire, mais plutôt délicate dans le texte).

Continue avec les Spécifications

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

J'ai fait la première protocole binaire implémentations de serveur (à la fois un serveur de test et memcached), et que c'était la première production de la client à le soutenir, et le fait de première classe.

J'ai aussi reçu le soutien de plusieurs algorithmes de hachage et de distribution du nœud algorithmes, qui sont tous bien-testé pour chaque génération. Vous pouvez faire un stock de ketama cohérente de hachage, ou un dérivé à l'aide de la FNV-1 (ou même java native de la chaîne de hachage) si vous voulez de meilleures performances.

5voto

newroot Points 51

Je crois que memcached client java est le meilleur client.

Caractéristiques

  • Protocole binaire de soutien. le moyen le plus rapide pour accéder à la clé/valeur stockée dans le serveur memcache.
  • Le protocole UDP soutien. Vous pouvez définir la clé avec le protocole tcp, et obtenir avec le protocole udp. A l', certaines grandes sociétés sont en train de faire comme ça.
  • Soutien personnalisé de la sérialisation et la désérialisation.
  • Le pool de connexion avec NIO et directe de la mémoire tampon. Augmenter dynamiquement des connexions lors de l'utilisation du pool de connexion.

Performance

  • Reportez-vous à la performance d'un test de référence de l'existant populaire memcached des clients java.
  • La désérialisation lors de la réception de la réponse
  • Optimisation des performances dans chaque ligne du code source.

5voto

Si ce sont des chiffres encore valide, alors ... http://xmemcached.googlecode.com/svn/trunk/benchmark/benchmark.html

4voto

Steve B. Points 23227

Que d'environ un an, lorsque j'ai eu à utiliser un memcached client java, le spymemcached connecteur a été décrit comme une optimisation de l'API avec plus de fonctionnalités. Depuis lors, il y a eu un certain nombre de nouvelles versions de memcached client de sorte qu'il peut être la peine de vérifier.

FWIW l'espion client a parfaitement fonctionné pour moi.

2voto

Langali Points 1231

J'ai été en utilisant SpyMemcached et de convenir que c'est le meilleur disponible là-bas, avec beaucoup de nouvelles améliorations.

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