summaryrefslogtreecommitdiff
path: root/kvrocks_filler/filler.pl
blob: 2efdc230d338522bff614d78f594f452861f1a77 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/usr/bin/perl
use IO::Socket;

print( "Connecting..\n" );

my $sck = IO::Socket->new(
  "PeerHost" => "127.0.0.1",
  "PeerPort" => 6000,
  "Blocking" => 1,
  "Proto" => "tcp",
  "Domain" => IO::Socket::AF_INET,
  "Type" => IO::Socket::SOCK_STREAM
) or die "Failed to create socket";

print( "Connected\n" );

my @chars = split( / /, "q w e r t y i o p a s d f g h j k l z x c v b n m" );
my $jlen = scalar( @chars );

srand();

my $junk = "";

sub gen_junk{
  $junk = "";
  for ( my $jc = 0; $jc < 100; $jc++ ){
    $junk .= $chars[rand($jlen)];
  }
  return $junk;
}

my $kname = "";

sub gen_key_name{
  $kname = "";
  for ( my $kchars = 0; $kchars < 20; $kchars++ ){
    $kname .= $chars[rand($jlen)];
  }
  return $kname;
}

sub kv_add{
  print( "Command:\n*3\r\n\$3\r\nset\r\n\$".length($_[0])."\r\n".$_[0]."\r\n\$".length($_[1])."\r\n".$_[1]."\r\n" );
  $sck->send( "*3\r\n\$3\r\nset\r\n\$".length($_[0])."\r\n".$_[0]."\r\n\$".length($_[1])."\r\n".$_[1]."\r\n" ) or die "Failed to add key";
}

sub start_multi{
  $sck->send( "MULTI\r\n" ) or die "Failed to start multi";
  return;
}

sub end_multi{
  $sck->send( "EXEC\r\n" );
  return;
}

print( "Adding keys\n" );

start_multi();

for ( my $gc = 0; $gc < 2000000; $gc++ ){
  print( "Adding key number ".$gc."\n" );
  kv_add( gen_key_name(), gen_junk() );
}

end_multi();

print( "Finished adding keys\n" );

$sck->shutdown( SHUT_RDWR );

undef $chars;
undef $jlen;
undef $sck;
exit( 0 );