HSJ
是mysql插件handlersocket的一个java客户端。Handlersocket(以下简称hs)是mysql的一个插件,旨在提高mysql的写入和读取性能,它通过插件的方式赋予MySQL完整的NoSQL功能,从原理上讲,它跳过MySQL中最耗时的语法解析,查询计划等步骤,直接读取数据,如果内存够大,能装下索引,MySQL的查询效率能提高若干倍!相关原理和性能表现参见:(中文)http://www.mysqlops.com/2011/10/19/handlersocket-principle.html(英文,需翻墙)http://yoshinorimatsunobu.blogspot.com/2010/10/using-mysql-as-nosql-story-for.html。hs的安装比较简单,两种方式:1.安装mysql的 Percona Server 社区版本,最新版已经自带了hs插件;2.安装mysql5.5以上版本,再安装hs最新版。具体参见:http://huoding.com/2011/04/10/62
hs的源码和各种语言的客户端参见:https://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL
hs的java客户端目前已知的有两个:
http://code.google.com/p/hs4j/
http://code.google.com/p/handlersocketforjava/
handlersocketforjava这个客户端实现简单,不具备什么实用性。hs4j网络层复用xmemcached,但hs一些新的操作协议没有实现,作者好像也不再维护了,并且没有异步调用接口。加上本人最近工作重心偏向网络编程,所以就基于netty实现了一个新的hs的java客户端-HSJ。
HSJ有以下几点优势:
1.完备的操作协议支持。包括认证(auth)和modify的各类操作。
2.异步调用接口支持。
3.开放的接口,方便支持分库分表的应用使用。
4.更好的封装,openindex操作复用HSJ内部已经实现,勿需调用者关心。hs4j需要自行实现,否则会使应用崩溃。
5.基于netty开发,性能上有提升。
6.完备的代码调用示例,方便上手使用。具体参见DbOperateTest.java
当然HSJ还有很多待完善的地方,希望更多的应用使用HSJ,使之成为最好的HS java客户端。也希望有感兴趣的开发者加入。请联系:yq76034150@gmail.com
HSJ源码地址:https://hsj.googlecode.com/svn/trunk