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