AnyEvent-RipeRedis

 view release on metacpan or  search on metacpan

README.md  view on Meta::CPAN

    $redis->incr('foo');    # causes an error
    $redis->exec(
      sub {
        my $reply = shift;
        my $err   = shift;

        if ( defined $err ) {
          my $err_msg  = $err->message();
          my $err_code = $err->code();

          if ( defined $reply ) {
            foreach my $nested_reply ( @{$reply} ) {
              if ( ref($nested_reply) eq 'AnyEvent::RipeRedis::Error' ) {
                my $nested_err_msg  = $nested_reply->message();
                my $nested_err_code = $nested_reply->code();

                # error handling...
              }
            }

            return;
          }

          # error handling...

          return;
        }

        # reply handling...
      },
    );

## discard( \[ $cb->( $reply, $err ) \] )

Flushes all previously queued commands in a transaction and restores the
connection state to normal.

If `WATCH` was used, `DISCARD` unwatches all keys.

## watch( @keys \[, $cb->( $reply, $err ) \] )

Marks the given keys to be watched for conditional execution of a transaction.

## unwatch( \[ $cb->( $reply, $err ) \] )

Forget about all watched keys.

# SUBSCRIPTIONS

Once the client enters the subscribed state it is not supposed to issue any
other commands, except for additional `SUBSCRIBE`, `PSUBSCRIBE`,
`UNSUBSCRIBE`, `PUNSUBSCRIBE` and `QUIT` commands.

The detailed information about Redis Pub/Sub can be found here:
[http://redis.io/topics/pubsub](http://redis.io/topics/pubsub)

## subscribe( @channels, ( $cb->( $msg, $channel ) | \\%cbs ) )

Subscribes the client to the specified channels.

Method can accept two callbacks: `on_reply` and `on_message`. The `on_reply`
callback is called when subscription to all specified channels will be
activated. In first argument to the callback is passed the number of channels
we are currently subscribed. If subscription to specified channels was lost,
the `on_reply` callback is called with the error object in the second argument.

The `on_message` callback is called on every published message. If the
`subscribe` method is called with one callback, this callback will be act as
`on_message` callback.

    $redis->subscribe( qw( foo bar ),
      { on_reply => sub {
          my $channels_num = shift;
          my $err          = shift;

          if ( defined $err ) {
            # error handling...

            return;
          }

          # reply handling...
        },

        on_message => sub {
          my $msg     = shift;
          my $channel = shift;

          # message handling...
        },
      }
    );

    $redis->subscribe( qw( foo bar ),
      sub {
        my $msg     = shift;
        my $channel = shift;

        # message handling...
      }
    );

## psubscribe( @patterns, ( $cb->( $msg, $pattern, $channel ) | \\%cbs ) )

Subscribes the client to the given patterns. See `subscribe()` method for
details.

    $redis->psubscribe( qw( foo_* bar_* ),
      { on_reply => sub {
          my $channels_num = shift;
          my $err          = shift;

          if ( defined $err ) {
            # error handling...

            return;
          }

          # reply handling...
        },

README.md  view on Meta::CPAN


- E\_READONLY

    You can't write against a read only slave.

- E\_OOM

    Command not allowed when used memory > 'maxmemory'.

- E\_EXEC\_ABORT

    Transaction discarded because of previous errors.

Error codes available since Redis 2.8.

- E\_NO\_AUTH

    Authentication required.

- E\_WRONG\_TYPE

    Operation against a key holding the wrong kind of value.

- E\_NO\_REPLICAS

    Not enough good slaves to write.

- E\_BUSY\_KEY

    Target key name already exists.

Error codes available since Redis 3.0.

- E\_CROSS\_SLOT

    Keys in request don't hash to the same slot.

- E\_TRY\_AGAIN

    Multiple keys request during rehashing of slot.

- E\_ASK

    Redirection required. For more information see:
    [http://redis.io/topics/cluster-spec](http://redis.io/topics/cluster-spec)

- E\_MOVED

    Redirection required. For more information see:
    [http://redis.io/topics/cluster-spec](http://redis.io/topics/cluster-spec)

- E\_CLUSTER\_DOWN

    The cluster is down or hash slot not served.

# DISCONNECTION

When the connection to the server is no longer needed you can close it in three
ways: call the method `disconnect()`, send the `QUIT` command or you can just
"forget" any references to an AnyEvent::RipeRedis object, but in this
case the client object is destroyed without calling any callbacks, including
the `on_disconnect` callback, to avoid an unexpected behavior.

## disconnect()

The method for synchronous disconnection. All uncompleted operations will be
aborted.

## quit( \[ $cb->( $reply, $err ) \] )

The method for asynchronous disconnection.

# OTHER METHODS

## info( \[ $section \] \[, $cb->( $reply, $err ) \] )

Gets and parses information and statistics about the server. The result
is passed to callback as a hash reference.

More information about `INFO` command can be found here:
[http://redis.io/commands/info](http://redis.io/commands/info)

## host()

Gets current host of the client.

## port()

Gets current port of the client.

## select( $index, \[, $cb->( $reply, $err ) \] )

Selects the database by numeric index.

## database()

Gets selected database index.

## utf8( \[ $boolean \] )

Enables or disables UTF-8 mode.

## connection\_timeout( \[ $fractional\_seconds \] )

Gets or sets the `connection_timeout` of the client. The `undef` value resets
the `connection_timeout` to default value.

## read\_timeout( \[ $fractional\_seconds \] )

Gets or sets the `read_timeout` of the client.

## reconnect( \[ $boolean \] )

Enables or disables reconnection mode of the client.

## reconnect\_interval( \[ $fractional\_seconds \] )

Gets or sets `reconnect_interval` of the client.

## on\_connect( \[ $callback \] )



( run in 0.748 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )