#!/usr/bin/env perl use strict; use warnings; use utf8; use Benchmark qw(:all); use Cache::Memcached::Fast; use Cache::Redis; use File::Spec; use File::Temp qw/tempdir/; use Test::Memcached; use Test::RedisServer; my $tempdir = tempdir(CLEANUP => 1); my $mem_sock = File::Spec->catfile($tempdir, 'mem.sock'); my $memd = Test::Memcached->new( options => { unix_socket => $mem_sock, }, ); $memd->start; my $memd_client = Cache::Memcached::Fast->new({ servers => [$mem_sock], }); my $redis = Test::RedisServer->new; my $redis_client = Cache::Redis->new( $redis->connect_info, nowait => 1, ); my $redis_client_fast = Cache::Redis->new( $redis->connect_info, redis_class => 'Redis::Fast', nowait => 1, ); my $results = timethese(0, { 'memd' => sub { $memd_client->set('hoge', 'fuga'); $memd_client->get('hoge'); $memd_client->remove('hoge'); }, 'redis' => sub { $redis_client->set('hoge', 'fuga'); $redis_client->get('hoge'); $redis_client->remove('hoge'); }, 'redis_fast' => sub { $redis_client_fast->set('hoge', 'fuga'); $redis_client_fast->get('hoge'); $redis_client_fast->remove('hoge'); }, }); cmpthese( $results ) ;