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

#!/usr/bin/perl
#
# This file is part of Redis
#
# This software is Copyright (c) 2015 by Pedro Melo, Damien Krotkine.
#
# This is free software, licensed under:
#
# The Artistic License 2.0 (GPL Compatible)
#
use strict;
use Benchmark qw/:all/;
use lib 'lib';
use Redis;
my $r = Redis->new;
my %hash;
tie %hash, 'Redis::Hash', 'hash';
my $i = 0;
timethese(
-5,
{ '00_ping' => sub { $r->ping },
'10_set' => sub { $r->set('foo', $i++) },
'11_set_r' => sub { $r->set('bench-' . rand(), rand()) },
'20_get' => sub { $r->get('foo') },
'21_get_r' => sub { $r->get('bench-' . rand()) },
'30_incr' => sub { $r->incr('counter') },
'30_incr_r' => sub { $r->incr('bench-' . rand()) },
'40_lpush' => sub { $r->lpush('mylist', 'bar') },
'40_lpush' => sub { $r->lpush('mylist', 'bar') },
'50_lpop' => sub { $r->lpop('mylist') },
'90_h_set' => sub { $hash{ 'test' . rand() } = rand() },
'90_h_get' => sub { my $a = $hash{ 'test' . rand() }; },
}
);