Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Memcached客户端_Java_Web Applications_Memcached - Fatal编程技术网

Java Memcached客户端

Java Memcached客户端,java,web-applications,memcached,Java,Web Applications,Memcached,哪一个是最好的Java memcached客户端,为什么?有和。不过,在这两方面都没有太多经验。大约一年前,当我不得不使用memcached java客户端时,spymecached连接器被描述为具有更多功能的优化API。从那时起,memcached客户端有了许多新版本,因此可能值得一看 FWIW间谍客户端对我来说工作得很好。作为本书的作者,我有点偏见,但我认为这是我的,原因如下: 从头开始设计,在任何可能的地方都是无阻塞的。 当你询问数据时,发出一套,等等。。。有一个很小的并发队列插入,您可以

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

有和。不过,在这两方面都没有太多经验。

大约一年前,当我不得不使用memcached java客户端时,spymecached连接器被描述为具有更多功能的优化API。从那时起,memcached客户端有了许多新版本,因此可能值得一看

FWIW间谍客户端对我来说工作得很好。

作为本书的作者,我有点偏见,但我认为这是我的,原因如下:

从头开始设计,在任何可能的地方都是无阻塞的。 当你询问数据时,发出一套,等等。。。有一个很小的并发队列插入,您可以在将来阻止结果(对于常见的情况,如get,使用一些方便的方法)

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

我在微基准测试方面仍然做得很好,但要与其他客户机进行公平比较,您必须设计不现实的使用模式(例如,等待每个集合操作的响应,或者构建锁来阻止它们进行数据包优化)

测试过度 我在每个版本上都维护了一个非常严格的测试套件

bug仍然会悄悄地出现,但它们通常都很小,客户机只是在不断改进。:)

有据可查 这一页提供了一个快速的介绍,但内容非常详细

提供高级抽象 我有一个到缓存的映射接口以及一个功能性CAS抽象。二进制和文本都支持带有默认机制的incr(由二进制协议提供,但在文本中相当棘手)

与规格保持一致 我在服务器本身上做了一个测试,所以我会跟上协议的变化

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


我还支持几种散列算法和节点分布算法,所有这些算法都经过了良好的测试。如果您想要更好的性能,您可以使用股票ketama一致性哈希,或者使用FNV-1(甚至java的本机字符串哈希)进行派生。

我一直在使用SpymeCached,并且不得不同意它是目前可用的最好的,有很多新的改进。

请尝试,它也是基于nio的,并具有一些强大的功能。

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

特征
  • 二进制协议支持。访问存储在memcached服务器中的密钥/值的最快方式
  • UDP协议支持。您可以使用tcp协议设置密钥,并使用udp协议获取。事实上,一些大公司正在这样做
  • 支持自定义序列化和反序列化
  • 具有NIO和直接缓冲区的连接池。当连接池不再使用时,动态增加连接
演出
  • 有关现有流行的memcached java客户端的基准测试,请参阅
  • 在接收响应时反序列化
  • 在源代码的每一行中进行性能调优

如果这些数字仍然有效,那么

定义“最佳”。你想优化什么?对于SpymeMached,最新的jar可以在maven上找到,最新的源代码在github上,但文档仍然在google代码上……在生产中使用,最近在网站的javadoc上查看了源代码。只是想说,真的,真的很棒。谢谢。截至今天,最新版本中有一个问题-。它看起来正在被解决,但如果您刚刚开始,您应该注意这一点。136已经修复,并且正在少数环境中进行测试。释放在即。您可以从列表中获得更多最新信息。@Dustin,这可能是一个愚蠢的问题(来自memcached noob),但您的单线程实现如何有效地服务于多线程应用程序?memcached本身在很长一段时间内都是单线程的,直到它实际上可以从消耗更多CPU中获益。线程有利于将计算分散到多个(大部分)独立的处理器上。线程API通常用作并发原语,但它们主要是并行原语。您不需要多个线程来建模并发性。您是说这个线程吗?也许你的答案上面有超链接。。。