79 |
_sock_read_bulk(); |
_sock_read_bulk(); |
80 |
} |
} |
81 |
|
|
82 |
|
sub _sock_result_bulk_list { |
83 |
|
my $self = shift; |
84 |
|
warn "## _sock_result_bulk_list ",dump( @_ ); |
85 |
|
|
86 |
|
my $size = $self->_sock_send( @_ ); |
87 |
|
confess $size unless $size > 0; |
88 |
|
$size--; |
89 |
|
|
90 |
|
my @list = ( 0 .. $size ); |
91 |
|
foreach ( 0 .. $size ) { |
92 |
|
$list[ $_ ] = _sock_read_bulk(); |
93 |
|
} |
94 |
|
|
95 |
|
warn "## list = ", dump( @list ); |
96 |
|
return @list; |
97 |
|
} |
98 |
|
|
99 |
sub __sock_ok { |
sub __sock_ok { |
100 |
my $ok = <$sock>; |
my $ok = <$sock>; |
101 |
return undef if $ok eq "nil\r\n"; |
return undef if $ok eq "nil\r\n"; |
334 |
|
|
335 |
sub lrange { |
sub lrange { |
336 |
my ( $self, $key, $start, $end ) = @_; |
my ( $self, $key, $start, $end ) = @_; |
337 |
my $size = $self->_sock_send('LRANGE', $key, $start, $end); |
$self->_sock_result_bulk_list('LRANGE', $key, $start, $end); |
|
|
|
|
confess $size unless $size > 0; |
|
|
$size--; |
|
|
|
|
|
my @list = ( 0 .. $size ); |
|
|
foreach ( 0 .. $size ) { |
|
|
$list[ $_ ] = _sock_read_bulk(); |
|
|
} |
|
|
|
|
|
warn "## lrange $key $start $end = [$size] ", dump( @list ); |
|
|
return @list; |
|
338 |
} |
} |
339 |
|
|
340 |
=head2 ltrim |
=head2 ltrim |
449 |
$self->_sock_send_bulk_number( 'SISMEMBER', $key, $member ); |
$self->_sock_send_bulk_number( 'SISMEMBER', $key, $member ); |
450 |
} |
} |
451 |
|
|
452 |
|
=head2 sinter |
453 |
|
|
454 |
|
$r->sinter( $key1, $key2, ... ); |
455 |
|
|
456 |
|
=cut |
457 |
|
|
458 |
|
sub sinter { |
459 |
|
my $self = shift; |
460 |
|
$self->_sock_result_bulk_list( 'SINTER', @_ ); |
461 |
|
} |
462 |
|
|
463 |
|
=head2 sinterstore |
464 |
|
|
465 |
|
my $ok = $r->sinterstore( $dstkey, $key1, $key2, ... ); |
466 |
|
|
467 |
|
=cut |
468 |
|
|
469 |
|
sub sinterstore { |
470 |
|
my $self = shift; |
471 |
|
$self->_sock_send_ok( 'SINTERSTORE', @_ ); |
472 |
|
} |
473 |
|
|
474 |
=head1 AUTHOR |
=head1 AUTHOR |
475 |
|
|
476 |
Dobrica Pavlinusic, C<< <dpavlin at rot13.org> >> |
Dobrica Pavlinusic, C<< <dpavlin at rot13.org> >> |