/[Redis.pre-github]/lib/Redis.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /lib/Redis.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 26 by dpavlin, Sun Mar 22 13:37:49 2009 UTC revision 32 by dpavlin, Sun Mar 22 17:06:34 2009 UTC
# Line 63  sub _sock_read_bulk { Line 63  sub _sock_read_bulk {
63          warn "## bulk len: ",dump($len);          warn "## bulk len: ",dump($len);
64          return undef if $len eq "nil\r\n";          return undef if $len eq "nil\r\n";
65          my $v;          my $v;
66          read($sock, $v, $len) || die $!;          if ( $len > 0 ) {
67          warn "## bulk v: ",dump($v);                  read($sock, $v, $len) || die $!;
68                    warn "## bulk v: ",dump($v);
69            }
70          my $crlf;          my $crlf;
71          read($sock, $crlf, 2); # skip cr/lf          read($sock, $crlf, 2); # skip cr/lf
72          return $v;          return $v;
# Line 79  sub _sock_result_bulk { Line 81  sub _sock_result_bulk {
81    
82  sub __sock_ok {  sub __sock_ok {
83          my $ok = <$sock>;          my $ok = <$sock>;
84            return undef if $ok eq "nil\r\n";
85          confess dump($ok) unless $ok eq "+OK\r\n";          confess dump($ok) unless $ok eq "+OK\r\n";
86  }  }
87    
# Line 100  sub __sock_send_bulk_raw { Line 103  sub __sock_send_bulk_raw {
103          my $self = shift;          my $self = shift;
104          warn "## _sock_send_bulk ",dump( @_ );          warn "## _sock_send_bulk ",dump( @_ );
105          my $value = pop;          my $value = pop;
106          print $sock join(' ',@_) . ' ' . length($value) . "\r\n$value\r\n";          $value = '' unless defined $value; # FIXME errr? nil?
107            print $sock join(' ',@_) . ' ' . length($value) . "\r\n$value\r\n"
108  }  }
109    
110  sub _sock_send_bulk {  sub _sock_send_bulk {
# Line 362  sub lset { Line 366  sub lset {
366    
367  =head2 lrem  =head2 lrem
368    
369    $r->lrem( $key, $count, $value );    my $modified_count = $r->lrem( $key, $count, $value );
370    
371  =cut  =cut
372    
# Line 371  sub lrem { Line 375  sub lrem {
375          $self->_sock_send_bulk_number( 'LREM', $key, $count, $value );          $self->_sock_send_bulk_number( 'LREM', $key, $count, $value );
376  }  }
377    
378    =head2 lpop
379    
380      my $value = $r->lpop( $key );
381    
382    =cut
383    
384    sub lpop {
385            my ( $self, $key ) = @_;
386            $self->_sock_result_bulk( 'LPOP', $key );
387    }
388    
389    =head2 rpop
390    
391      my $value = $r->rpop( $key );
392    
393    =cut
394    
395    sub rpop {
396            my ( $self, $key ) = @_;
397            $self->_sock_result_bulk( 'RPOP', $key );
398    }
399    
400    =head1 Commands operating on sets
401    
402    =head2 sadd
403    
404      $r->sadd( $key, $member );
405    
406    =cut
407    
408    sub sadd {
409            my ( $self, $key, $member ) = @_;
410            $self->_sock_send_bulk_number( 'SADD', $key, $member );
411    }
412    
413    =head2 srem
414    
415      $r->srem( $key, $member );
416    
417    =cut
418    
419    sub srem {
420            my ( $self, $key, $member ) = @_;
421            $self->_sock_send_bulk_number( 'SREM', $key, $member );
422    }
423    
424    =head2 scard
425    
426      my $elements = $r->scard( $key );
427    
428    =cut
429    
430    sub scard {
431            my ( $self, $key ) = @_;
432            $self->_sock_send( 'SCARD', $key );
433    }
434    
435    =head2 sismember
436    
437      $r->sismember( $key, $member );
438    
439    =cut
440    
441    sub sismember {
442            my ( $self, $key, $member ) = @_;
443            $self->_sock_send_bulk_number( 'SISMEMBER', $key, $member );
444    }
445    
446  =head1 AUTHOR  =head1 AUTHOR
447    
448  Dobrica Pavlinusic, C<< <dpavlin at rot13.org> >>  Dobrica Pavlinusic, C<< <dpavlin at rot13.org> >>

Legend:
Removed from v.26  
changed lines
  Added in v.32

  ViewVC Help
Powered by ViewVC 1.1.26