小编典典
作为spymemcached的作者,我有些偏颇,但是我说这是我的,原因如下:
从头开始设计,以尽可能地不受阻碍。
当您请求数据,发布数据集等时,会有一个微小的并发队列插入,并且您会得到一个Future来阻止结果(使用一些便捷方法来处理诸如get之类的常见情况)。
积极优化
您可以在我的优化页面上阅读更多信息,但是我会进行整个应用程序优化。
我在微基准测试中仍然做得不错,但是要与其他客户端进行比较,您必须设计不切实际的使用模式(例如,等待每个set操作的响应或建立锁定以防止它们进行数据包优化)。
经过严格测试
我维护了一个非常严格的测试套件,其中包含每个版本的覆盖率报告。
错误仍然存在,但是它们通常很小,并且客户端不断变得更好。:)
有据可查
该示例页面提供了一个简要介绍,但javadoc的进入极大的细节。
提供高级抽象
我有一个到缓存的Map接口以及功能上的CAS抽象。二进制和文本都支持incr-with-default机制(由二进制协议提供,但是在文本上比较棘手)。
跟上规格
我在服务器本身上做了很多工作,所以我跟上了协议的更改。
我做了第一个二进制协议服务器实现(包括测试服务器和memcached本身),这是第一个支持它的生产就绪客户端,并且做到了一流。
我还支持几种哈希算法和节点分发算法,所有这些算法都针对每个构建都经过了充分的测试。如果您想要更好的性能,则可以执行股票ketama一致性哈希,也可以使用FNV-1(甚至Java的本机字符串哈希)进行派生。
2020-10-18