projects
/
perl-Redis.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
setnx
[perl-Redis.git]
/
lib
/
Redis.pm
diff --git
a/lib/Redis.pm
b/lib/Redis.pm
index
3026ee7
..
d03416e
100644
(file)
--- a/
lib/Redis.pm
+++ b/
lib/Redis.pm
@@
-5,6
+5,7
@@
use strict;
use IO::Socket::INET;
use Data::Dump qw/dump/;
use IO::Socket::INET;
use Data::Dump qw/dump/;
+use Carp qw/confess/;
=head1 NAME
=head1 NAME
@@
-80,15
+81,15
@@
sub ping {
=head2 set
=head2 set
- $r->set( foo => 'bar' );
+ $r->set( foo => 'bar'
, $new
);
=cut
sub set {
=cut
sub set {
- my ( $self, $k, $v ) = @_;
- print $sock
"SET
$k " . length($v) . "\r\n$v\r\n";
+ my ( $self, $k, $v
, $new
) = @_;
+ print $sock
( $new ? "SETNX" : "SET" ) . "
$k " . length($v) . "\r\n$v\r\n";
my $ok = <$sock>;
my $ok = <$sock>;
-
die
dump($ok) unless $ok eq "+OK\r\n";
+
confess
dump($ok) unless $ok eq "+OK\r\n";
}
=head2 get
}
=head2 get
@@
-101,11
+102,18
@@
sub get {
my ( $self, $k ) = @_;
print $sock "GET $k\r\n";
my $len = <$sock>;
my ( $self, $k ) = @_;
print $sock "GET $k\r\n";
my $len = <$sock>;
+# warn "# len: ",dump($len);
+ return undef if $len eq "nil\r\n";
my $v;
read($sock, $v, $len) || die $!;
my $v;
read($sock, $v, $len) || die $!;
+# warn "# v: ",dump($v);
+ my $crlf;
+ read($sock, $crlf, 2); # skip cr/lf
return $v;
}
return $v;
}
+
+
=head1 AUTHOR
Dobrica Pavlinusic, C<< <dpavlin at rot13.org> >>
=head1 AUTHOR
Dobrica Pavlinusic, C<< <dpavlin at rot13.org> >>