当前位置:  开发笔记 > 编程语言 > 正文

Java Memcached客户端

如何解决《JavaMemcached客户端》经验,为你挑选了3个好方法。

哪个是最好的Java memcached客户端,为什么?



1> Dustin..:

作为spymemcached的作者,我有点偏颇,但我会说这是我的,原因如下:

从头开始设计,随处可能无阻塞.

当你要求数据,发出一个集合等等......有一个很小的并发队列插入,你得到一个阻止结果的Future(对于像get这样的常见情况有一些方便的方法).

积极优化

您可以在我的优化页面上阅读更多内容,但我会进行整个应用程序优化.

我仍然在微基准测试中做得很好,但为了与其他客户端进行公平比较,你必须设计不切实际的使用模式(例如,等待每个集合操作的响应或构建锁定来阻止他们进行数据包优化).

经过严格测试

我维护着一个非常严格的测试套件,每个版本都有覆盖率报告.

错误仍然存​​在,但它们通常很小,而且客户端一直在变得更好.:)

记录良好

该示例页面提供了一个简要介绍,但javadoc的进入极大的细节.

提供高级抽象

我有一个缓存的Map接口以及一个功能CAS抽象.二进制文本和文本都支持incr-with-default机制(由二进制协议提供,但在文本中相当棘手).

跟上规格

我在服务器上做了很多工作,所以我跟上了协议的变化.

我做了第一个二进制协议服务器实现(测试服务器和memcached本身),这是第一个支持它的生产就绪客户端,并且这样做是一流的.

我也得到了几种哈希算法和节点分配算法的支持,所有这些算法都经过了很好的测试.如果你想要更好的性能,你可以使用FNV-1(甚至java的本机字符串散列)来执行库存ketama一致哈希或衍生.


在生产中使用,最近查看了网站上javadoc的源代码.只是想说,真的,非常好的工作.谢谢.
136已经修复,并且正在几个环境中进行测试.发布迫在眉睫.您可以从列表中获取更多最新信息.
memcached本身是单线程的很长一段时间,直到它实际上可以从消耗更多的CPU中受益.线程有利于跨多个(大多数)独立处理器分散计算.线程API通常用作并发原语,但它们主要是并行原语.您不需要多个线程来建模并发.

2> 小智..:

我相信memcached java客户端是最好的客户端.

特征

二进制协议支持.访问存储在memcached服务器中的密钥/值的最快方法.

UDP协议支持.您可以使用tcp协议设置密钥,并使用udp协议.实际上,一些大公司正在做这样的事情.

支持自定义序列化和反序列化.

具有NIO和直接缓冲区的连接池.在不使用连接池时动态增加连接.

性能

有关现有流行的memcached Java客户端的基准测试,请参阅性能.

在接收响应时反序列化

性能调整到源代码的每一行.



3> Ashwin Jayap..:

如果这些数字仍然有效,那么... http://xmemcached.googlecode.com/svn/trunk/benchmark/benchmark.html

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有