incr, incrby
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sat, 21 Mar 2009 22:38:56 +0000 (22:38 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sat, 21 Mar 2009 22:38:56 +0000 (22:38 +0000)
git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/Redis@7 447b33ff-793d-4489-8442-9bea7d161be5

lib/Redis.pm
t/01-Redis.t

index d03416e..952b80b 100644 (file)
@@ -112,7 +112,24 @@ sub get {
        return $v;
 }
 
        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
 
 
 =head1 AUTHOR
 
index 1990e08..6d876f5 100755 (executable)
@@ -3,7 +3,7 @@
 use warnings;
 use strict;
 
 use warnings;
 use strict;
 
-use Test::More tests => 18;
+use Test::More tests => 28;
 
 use lib 'lib';
 
 
 use lib 'lib';
 
@@ -28,9 +28,21 @@ cmp_ok( $o->get( 'foo' ), 'eq', 'baz', 'get foo = baz' );
 
 ok( ! $o->get( 'non-existant' ), 'get non-existant' );
 
 
 ok( ! $o->get( 'non-existant' ), 'get non-existant' );
 
-foreach ( 0 .. 3 ) {
+ok( $o->set('key-next' => 0), 'key-next = 0' );
+
+my $key_next = 3;
+
+foreach ( 0 .. $key_next ) {
        ok(     $o->set( "key-$_" => $_ ),           "set key-$_" );
        cmp_ok( $o->get( "key-$_"       ), 'eq', $_, "get key-$_" );
        ok(     $o->set( "key-$_" => $_ ),           "set key-$_" );
        cmp_ok( $o->get( "key-$_"       ), 'eq', $_, "get key-$_" );
+       cmp_ok( $o->incr( 'key-next' ), '==', $_ + 1, 'incr' );
+}
+
+cmp_ok( $o->get( 'key-next' ), '==', $key_next + 1, 'key-next' );
+
+ok( $o->set('test-incrby', 0), 'test-incrby' );
+foreach ( 1 .. 3 ) {
+       cmp_ok( $o->incr('test-incrby', 3), '==', $_ * 3, 'incrby 3' );
 }
 
 ok( $o->quit, 'quit' );
 }
 
 ok( $o->quit, 'quit' );