安装handlersocket插件安装完之后创建一个test数据库表:
CREATE TABLE IF NOT EXISTS `test`.`t` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`a` varchar(10) NOT NULL,
`b` varchar(10) NOT NULL,
PRIMARY KEY (`id`),
KEY `a_b` (`a`,`b`)
) ENGINE=InnoDB;
协议说明:
常用的协议规范:
打开索引:P <索引标识> <数据库> <表> <索引> <字段>
插入数据:<索引标识> ‘+’ <参数个数> <参数1> … <参数N>
读取数据:<索引标识> <操作> <参数个数> <参数1> … <参数N> <条数> <偏移>
https://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL/blob/master/docs-en/protocol.en.txt
以前翻译过,不知道翻译完的那个搞哪去了。
>telnet 127.0.0.1 9999
Trying 127.0.0.1......
connected to 127.0.0.1.
Escape character is '^]'.
P 1 test t primary id,a,b //打开库索引
2 1 idxnum
//这里常创先这个问题是因为:primary后面跟着的也是Tab不是空格。
P 1 test t primary id,a,b
0 1
//并且这里大小写是敏感的
//插入数据
//<id> + <vnum> <v1> <v2> ... <v3> //vnum:参数个数
1 + 3 NULL a1 b1
0 1 1 //0 1:表示成功 1表示:插入数据的id
1 + 3 3 q1 w1 //指定id=3
0 1 0 //成功并0表示指定id不返回(上面返回)
//删除数据
//<id> <op> <vlen> <v1>......<vn> [LIM][IN][FILTER ...] MOD
//id 比较符(=、>、<、>=、<=) 小于等于索引列的个数 参数 limit或者offset IN ... U、D、+、-
2 > 1(vlen) 3(where) 1(LIM) 0 D //delete from test.t where id > 3 limit1;
//更新数据
2 = 1(vlen) 3(where) 1(LIM) 0 U 3 aa bb //update test.t set a = "aa", b = "bb" where id = 3;
//查询数据
2 >= 1 5 3 0 //select id,a,b from test.t where id >= 5 limit 3;
0 3 5 a4 b4 7 a7 b7 8 NULL NULL //返回结果
支持简单的数据库操作,明儿看看封装api使用。