Java Memcached Client [已关闭]

2022-08-31 19:55:48

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


答案 1

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

从头开始设计,在任何地方都保持无阻塞。

当您要求数据,发布一组等时...有一个很小的并发队列插入,你会得到一个Future来阻止结果(对于常见情况,如get,有一些方便的方法)。

积极优化

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

我在微基准测试中仍然做得很好,但是要与其他客户端进行公平比较,您必须设计不切实际的使用模式(例如,等待每个设置操作的响应或围绕它们构建锁以防止它们进行数据包优化)。

强迫性测试

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

Bug仍然会溜进来,但它们通常很小,客户端只会越来越好。:)

有据可查

示例页面提供了快速介绍,但javadoc非常详细。

提供高级抽象

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

跟上规格

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

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

我还支持几种哈希算法和节点分布算法,所有这些算法都针对每个构建都进行了很好的测试。如果你想要更好的性能,你可以做一个股票ketama一致哈希,或者使用FNV-1(甚至是java的原生字符串哈希)的导数。


答案 2

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

特征

  • 二进制协议支持。访问存储在 memcached 服务器中的键/值的最快方法。
  • UDP 协议支持。您可以使用 tcp 协议设置密钥,并使用 udp 协议获取密钥。事实上,一些大公司正在这样做。
  • 支持自定义序列化和反序列化。
  • 与 NIO 和直接缓冲区的连接池。在连接池不使用时动态增加连接。

性能

  • 有关现有流行的 memcached Java 客户端的基准测试,请参阅性能
  • 接收响应时反序列化
  • 对源代码的每一行进行性能调优。

推荐