您的位置:首页 > 编程语言 > Java开发

MySQL插件handlersocket的一个java客户端 - HSJ介绍

2014-04-01 15:07 309 查看
转自 http://www.open-open.com/lib/view/open1328434950343.html

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: