--- lib/Redis.pm 2009/03/21 21:53:15 4 +++ lib/Redis.pm 2009/03/21 22:38:56 7 @@ -5,6 +5,7 @@ use IO::Socket::INET; use Data::Dump qw/dump/; +use Carp qw/confess/; =head1 NAME @@ -80,15 +81,15 @@ =head2 set - $r->set( foo => 'bar' ); + $r->set( foo => 'bar', $new ); =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>; - die dump($ok) unless $ok eq "+OK\r\n"; + confess dump($ok) unless $ok eq "+OK\r\n"; } =head2 get @@ -111,7 +112,24 @@ return $v; } +=head2 incr + $r->incr('counter'); + $r->incr('tripplets', 3); + +=cut + +sub incr { + my ( $self, $key, $value ) = @_; + if ( defined $value ) { + print $sock "INCRBY $key $value\r\n"; + } else { + print $sock "INCR $key\r\n"; + } + my $count = <$sock>; + warn "# $key = $count"; + return $count; +} =head1 AUTHOR