哪个是最好的Java memcached客户端,为什么?
作为spymemcached的作者,我有点偏颇,但我会说这是我的,原因如下:
当你要求数据,发出一个集合等等......有一个很小的并发队列插入,你得到一个阻止结果的Future(对于像get这样的常见情况有一些方便的方法).
您可以在我的优化页面上阅读更多内容,但我会进行整个应用程序优化.
我仍然在微基准测试中做得很好,但为了与其他客户端进行公平比较,你必须设计不切实际的使用模式(例如,等待每个集合操作的响应或构建锁定来阻止他们进行数据包优化).
我维护着一个非常严格的测试套件,每个版本都有覆盖率报告.
错误仍然存在,但它们通常很小,而且客户端一直在变得更好.:)
该示例页面提供了一个简要介绍,但javadoc的进入极大的细节.
我有一个缓存的Map接口以及一个功能CAS抽象.二进制文本和文本都支持incr-with-default机制(由二进制协议提供,但在文本中相当棘手).
我在服务器上做了很多工作,所以我跟上了协议的变化.
我做了第一个二进制协议服务器实现(测试服务器和memcached本身),这是第一个支持它的生产就绪客户端,并且这样做是一流的.
我也得到了几种哈希算法和节点分配算法的支持,所有这些算法都经过了很好的测试.如果你想要更好的性能,你可以使用FNV-1(甚至java的本机字符串散列)来执行库存ketama一致哈希或衍生.
我相信memcached java客户端是最好的客户端.
二进制协议支持.访问存储在memcached服务器中的密钥/值的最快方法.
UDP协议支持.您可以使用tcp协议设置密钥,并使用udp协议.实际上,一些大公司正在做这样的事情.
支持自定义序列化和反序列化.
具有NIO和直接缓冲区的连接池.在不使用连接池时动态增加连接.
有关现有流行的memcached Java客户端的基准测试,请参阅性能.
在接收响应时反序列化
性能调整到源代码的每一行.
如果这些数字仍然有效,那么... http://xmemcached.googlecode.com/svn/trunk/benchmark/benchmark.html