AnyEvent-RipeRedis
view release on metacpan or search on metacpan
$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...
},
- 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 )