# NAME Redis::Jet - Yet another XS implemented Redis Client # SYNOPSIS use Redis::Jet; my $jet = Redis::Jet->new( server => 'localhost:6379' ); my $ret = $jet->command(qw/set redis data-server/); # $ret eq 'OK' my $value = $jet->command(qw/get redis/); # $value eq 'data-server' my $ret = $jet->command(qw/set memcached cache-server/); my $values = $jet->command(qw/mget redis memcached mysql/); # $values eq ['data-server','memcached',undef] ## error handling ($values,$error) = $jet->command(qw/get redis memcached mysql/); # $error eq q!ERR wrong number of arguments for 'get' command! ## pipeline my @values = $jet->pipeline([qw/get redis/],[qw/get memcached/]); # \@values = [['data-server'],['cache-server']] my @values = $jet->pipeline([qw/get redis/],[qw/get memcached mysql/]); # \@values = [['data-server'],[undef,q!ERR wrong...!]] # DESCRIPTION This project is still in a very early development stage. IT IS NOT READY FOR PRODUCTION! Redis::Jet is yet another XS implemented Redis Client. This module provides simple interfaces to communicate with Redis server # METHODS - `my $obj = Redis::Jet->new(%args)` Create a new instance. - `server => "server:port"` server address and port - connect\_timeout Time seconds to wait for establish connection. default: 5 - io\_timeout Time seconds to wait for send request and read response. default: 1 - utf8 If enabled, Redis::Jet does encode/decode strings. default: 0 (false) - noreply IF enabled. The instance does not parse any responses. Every responses to be `"0 but true"`. default: 0 (false) - reconnect\_attempts If Redis::Jet could not connect to redis server or failed to write requests, Redis::Jet attempts to re-connect. This parameter specify how many times to try reconnect. default: 0 (disable reconnect feature); - reconnect\_delay Redis::Jet inserts delay before reconnect redis-server (see `reconnect_attempts`). default: 0.1 (100msec) - `($value,[$error]) = $obj->command($command,$args,$args)` send a command and retrieve a value - `@values = $obj->pipeline([$command,$args,$args],[$command,$args,$args])` send several commands and retrieve values. each value has value and error string if error was occurred. # BENCHMARK single get ======= Rate redis fast hiredis jet redis 46036/s -- -58% -70% -75% fast 110682/s 140% -- -29% -39% hiredis 155172/s 237% 40% -- -15% jet 181695/s 295% 64% 17% -- single incr ======= Rate redis fast hiredis jet redis 49118/s -- -58% -70% -73% fast 116294/s 137% -- -29% -37% hiredis 164938/s 236% 42% -- -11% jet 184497/s 276% 59% 12% -- pipeline ======= Rate redis fast jet redis 15754/s -- -73% -87% fast 58519/s 271% -- -53% jet 124185/s 688% 112% -- Physical server Intel Xeon CPU E3-1240 v3 @ 3.40GHz | 4core/8thread redis-2.8.17 Perl-5.20.1 Redis 1.976 Redis::Fast 0.13 Redis::hiredis 0.11.0 # SEE ALSO \* [Redis](http://search.cpan.org/perldoc?Redis) \* [Redis::Fast](http://search.cpan.org/perldoc?Redis::Fast) \* [Redis::hiredis](http://search.cpan.org/perldoc?Redis::hiredis) \* http://redis.io/ # LICENSE Copyright (C) Masahiro Nagano. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. # AUTHOR Masahiro Nagano