The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

#!/usr/bin/perl
use 5.010;
use strict;
use Time::HiRes qw(time);
my ( $pipeline, $size, $count ) = ( 1, 16, 50_000 );
GetOptions(
"pipeline!" => \$pipeline,
"size=i" => \$size,
"count=i" => \$count,
) or die;
say "RedisDB: ", RedisDB->VERSION;
say "Testing ", ( $pipeline ? "in pipeling mode" : "in synchronous mode" );
say "Data chunk size ", $size;
say "Number of chunks ", $count;
my $srv = Test::RedisDB->new;
my $redisdb = $srv->redisdb_client;
my $chunk = 'x' x $size;
my @cb = $pipeline ? RedisDB::IGNORE_REPLY : ();
my $start = time;
for ( 1 .. $count ) {
$redisdb->set( "RDB$_", $chunk, @cb );
$redisdb->get( "RDB$_", @cb );
}
$redisdb->mainloop;
printf "Time: %.3fs\n", time - $start;