From: rns Date: Wed, 18 Aug 2010 08:43:06 +0000 (+0300) Subject: mset and mget using multibulk protocol X-Git-Url: http://git.rot13.org/?p=perl-Redis.git;a=commitdiff_plain;h=6255eeeb7fb4da510289888a086477f03194ef97 mset and mget using multibulk protocol --- diff --git a/lib/Redis.pm b/lib/Redis.pm index 8df6779..09db12b 100644 --- a/lib/Redis.pm +++ b/lib/Redis.pm @@ -55,6 +55,11 @@ sub new { $self; } +my $multi_bulk_command = { + mset => 1, + mget => 1 +}; + my $bulk_command = { set => 1, setnx => 1, rpush => 1, lpush => 1, @@ -89,7 +94,15 @@ sub AUTOLOAD { my $send; - if ( defined $bulk_command->{$command} ) { + if ( defined $multi_bulk_command->{$command} ) { + $send = + '*' . (scalar(@_) + 1) . "\r\n" + . '$' . (length($command)) . "\r\n" + . uc($command) . "\r\n" + ; + $send .= join "\r\n", map { '$' . length($_) . "\r\n" . $_ } @_; + $send .= "\r\n"; + } elsif ( defined $bulk_command->{$command} ) { my $value = pop; $value = '' if ! defined $value; $send