#!/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 );