NAME
    AnyEvent::Redis - Non-blocking Redis client

SYNOPSIS
      use AnyEvent::Redis;

      my $redis = AnyEvent::Redis->new(
          host => '127.0.0.1',
          port => 6379,
          on_error => sub { warn @_ },
      );

      # callback based
      $redis->set( 'foo'=> 'bar', sub { warn "SET!" } );
      $redis->get( 'foo', sub { my $value = shift } );

      my ($key, $value) = ('list_key', 123);
      $redis->lpush( $key, $value );
      $redis->lpop( $key, sub { my $value = shift });

      # condvar based
      my $cv = $redis->lpop( $key );
      $cv->cb(sub { my $value = $_[0]->recv });

DESCRIPTION
    AnyEvent::Redis is a non-blocking Redis client using AnyEvent.

METHODS
    All methods supported by your version of Redis should be supported.

  Normal commands
    There are two alternative approaches for handling results from commands.

    *   AnyEvent::CondVar based:

          my $cv = $redis->command(
            # arguments to command
          );

          $cv->cb(sub {
            my($cv) = @_;
            my($result, $err) = $cv->recv
          });

    *   Callback:

          $redis->command(
            # arguments,
            sub {
              my($result, $err) = @_;
            });

        (Callback is a wrapper around the $cv approach.)

  Subscriptions
    The subscription methods ("subscribe" and "psubscribe") must be used
    with a callback:

      my $cv = $redis->subscribe("test", sub {
        my($message, $channel[, $actual_channel]) = @_;
        # ($actual_channel is provided for pattern subscriptions.)
      });

    The $cv condition will be met on unsubscribing from the channel.

    Due to limitations of the Redis protocol the only valid commands on a
    connection with an active subscription are subscribe and unsubscribe
    commands.

  Common methods
    *   get

    *   set

    *   hset

    *   hget

    *   lpush

    *   lpop

    The Redis command reference
    (<http://code.google.com/p/redis/wiki/CommandReference>) lists all
    commands Redis supports.

REQUIREMENTS
    This requires Redis >= 1.2.

COPYRIGHT
    Tatsuhiko Miyagawa <miyagawa@bulknews.net> 2009-

LICENSE
    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

AUTHORS
    Tatsuhiko Miyagawa

    David Leadbeater

    Chia-liang Kao

    franck cuny

    Lee Aylward

    Joshua Barratt

    Jeremy Zawodny

    Leon Brocard

SEE ALSO
    Redis, AnyEvent

