X-Git-Url: http://git.rot13.org/?p=perl-Redis.git;a=blobdiff_plain;f=lib%2FRedis.pm;h=5a62fbf117299316d63b906848fa3896467bcfdf;hp=a2b8647b226d5306a86075a6b8afe14323123bbd;hb=9cfdc80967211c3b14fb981b5e0b012f43447599;hpb=74f09579425ad6060edc98c31b7781b57c5fecde diff --git a/lib/Redis.pm b/lib/Redis.pm index a2b8647..5a62fbf 100644 --- a/lib/Redis.pm +++ b/lib/Redis.pm @@ -75,6 +75,19 @@ sub _sock_ok { confess dump($ok) unless $ok eq "+OK\r\n"; } +sub _sock_send { + my $self = shift; + print $sock join(' ',@_) . "\r\n"; + _sock_result(); +} + +sub _sock_send_bulk { + my ( $self, $command, $key, $value ) = @_; + print $sock "$command $key " . length($value) . "\r\n$value\r\n"; + _sock_ok(); +} + + =head1 Connection Handling =head2 quit @@ -110,9 +123,8 @@ sub ping { =cut sub set { - my ( $self, $k, $v, $new ) = @_; - print $sock "SET" . ( $new ? 'NX' : '' ) . " $k " . length($v) . "\r\n$v\r\n"; - _sock_ok(); + my ( $self, $key, $value, $new ) = @_; + $self->_sock_send_bulk( "SET" . ( $new ? 'NX' : '' ), $key, $value ); } =head2 get @@ -249,6 +261,41 @@ sub dbsize { _sock_result(); } +=head1 Commands operating on lists + +=head2 rpush + + $r->rpush( $key, $value ); + +=cut + +sub rpush { + my ( $self, $key, $value ) = @_; + $self->_sock_send_bulk('RPUSH', $key, $value); +} + +=head2 lpush + + $r->lpush( $key, $value ); + +=cut + +sub lpush { + my ( $self, $key, $value ) = @_; + $self->_sock_send_bulk('LPUSH', $key, $value); +} + +=head2 llen + + $r->llen( $key ); + +=cut + +sub llen { + my ( $self, $key ) = @_; + $self->_sock_send( 'llen', $key ); +} + =head1 AUTHOR Dobrica Pavlinusic, C<< >>