12. HandlerSocket 测试报告
2.3.1 随机读取记录
#!/usr/bin/perl
use strict;
use warnings;
use Net::HandlerSocket;
#1. 创建连接
my $args = { host => '127.0.0.1', port => 9998 };
my $hs = new Net::HandlerSocket($args);
#2. 打开索引
#数值 0 是程序中打开句柄编号,可以自定义;
#test 是数据库名
#t1 是数据表名
#PRIMARY 是主键名
#id,k,c,pad 是后续要进行存取的列名
my $res = $hs->open_index(0, 'test', 't1', 'PRIMARY', 'id,k,c,pad');
die $hs->get_error() if $res != 0;
while (1)
13. HandlerSocket 测试报告
{
#3. 随机读取记录
my $tmp_i = sprintf("%d", rand() * 10000000);
$res = $hs->execute_single(0, '=', [ "$tmp_i" ], 1, 0);
die $hs->get_error() if $res->[0] != 0;
shift(@$res);
for (my $row = 0; $row < 1; ++$row) {
my $id = $res->[$row + 0];
my $k = $res->[$row + 1];
my $c = $res->[$row + 2];
my $pad = $res->[$row + 3];
#print "tmp_i:$tmp_i, $id, $k, $c, $padn";
}
}
#5. 关闭连接
$hs->close();
2.3.2 顺序写入记录
#!/usr/bin/perl
14. HandlerSocket 测试报告
use strict;
use warnings;
use Net::HandlerSocket;
#1.1 establishing a connection
my $args = { host => '127.0.0.1', port => 9999 };
my $hs = new Net::HandlerSocket($args);
#1.2 open index
my $res = $hs->open_index(0, 'test', 't1', 'PRIMARY', 'id,k,c,pad');
die $hs->get_error() if $res != 0;
#2. insert
while (1)
{
my $tmp_i = sprintf("%d", rand() * 10000000);
$res = $hs->execute_insert(0, [ '0',"$tmp_i",'abcy','aasfasdyyy' ]);
my $insert_id = $res->[1];
my $ret = $res->[0];
}
#4. closing the connection
15. HandlerSocket 测试报告
$hs->close();
2.3.3 更新记录
#!/usr/bin/perl
use strict;
use warnings;
use Net::HandlerSocket;
#1.1 establishing a connection
my $args = { host => '127.0.0.1', port => 9999 };
my $hs = new Net::HandlerSocket($args);
#2 open index
my $res = $hs->open_index(0, 'test', 't1', 'PRIMARY', 'k');
die $hs->get_error() if $res != 0;
#3. update
#$hs->execute_single(0, '=', [ '270337481' ] , 1, 0, 'U', [ '1806176' ]);
#或者
$hs->execute_update(0, '=', [ '270337481' ] , 1, 0, [ '1806177' ]);
16. HandlerSocket 测试报告
#4. closing the connection
$hs->close();
2.3.4 删除记录
#!/usr/bin/perl
use strict;
use warnings;
use Net::HandlerSocket;
#1 establishing a connection
my $args = { host => '127.0.0.1', port => 9999 };
my $hs = new Net::HandlerSocket($args);
#2 open index
my $res = $hs->open_index(0, 'test', 't1', 'PRIMARY', 'k');
die $hs->get_error() if $res != 0;
#3. delete
#$hs->execute_single(0, '=', [ '270337481' ] , 1, 0, 'D');