NAME
AnyEvent::Memcached - AnyEvent memcached client
VERSION
Version 0.01_2
NOTICE
This is a developer release. Interface is subject to change.
If you want to rely on some features, please, notify me about them
SYNOPSIS
use AnyEvent::Memcached;
my $memd = AnyEvent::Memcached->new(
servers => [ "10.0.0.15:11211", "10.0.0.15:11212" ], # same as in Cache::Memcached
debug => 1,
compress_threshold => 10000,
namespace => 'my-namespace:',
cv => $cv, # AnyEvent->condvar: group callback
);
$memd->set_servers([ "10.0.0.15:11211", "10.0.0.15:11212" ]);
# Basic methods are like in Cache::Memcached, but with additional cb => sub { ... };
# first argument to cb is return value, second is the error(s)
$memd->set( key => $value, cb => sub {
shift or warn "Set failed: @_"
} );
$memd->get( 'key', cb => sub {
my ($value,$err) = shift;
$err and return warn "Get failed: @_";
warn "Value for key is $value";
} );
$memd->mget( [ 'key1', 'key2' ], cb => sub {
my ($values,$err) = shift;
$err and return warn "Get failed: @_";
warn "Value for key1 is $values->{key1} and value for key2 is $values->{key2}"
} );
# Additionally there is rget (see memcachedb-1.2.1-beta)
$memd->rget( 'fromkey', 'tokey', cb => sub {
my ($value,$err) = shift;
$err and warn "Get failed: @_";
} );
METHODS
new %args
Currently supported options:
set_servers
Setup server list
connect
Establish connection to all servers and invoke event C<connected>, when ready
set( $key, $value, [cv => $cv], [ expire => $expire ], cb => $cb->( $rc, $err ) )
Unconditionally sets a key to a given value in the memcache.
$rc
is
add( $key, $value, [cv => $cv], [ expire => $expire ], cb => $cb->( $rc, $err ) )
Like set
, but only stores in memcache if the key doesn't already exist.
replace( $key, $value, [cv => $cv], [ expire => $expire ], cb => $cb->( $rc, $err ) )
Like set
, but only stores in memcache if the key already exists. The opposite of add.
append( $key, $value, [cv => $cv], [ expire => $expire ], cb => $cb->( $rc, $err ) )
Append the $value to the current value on the server under the $key.
append command first appeared in memcached 1.2.4.
prepend( $key, $value, [cv => $cv], [ expire => $expire ], cb => $cb->( $rc, $err ) )
Prepend the $value to the current value on the server under the $key.
prepend command first appeared in memcached 1.2.4.
get( $key, [cv => $cv], [ expire => $expire ], cb => $cb->( $rc, $err ) )
Retrieve the value for a $key. $key should be a scalar
mget( $keys : ARRAYREF, [cv => $cv], [ expire => $expire ], cb => $cb->( $rc, $err ) )
NOT IMPLEMENTED YET
Retrieve the values for a $keys.
get_multi : Alias for mget.
NOT IMPLEMENTED YET
gets( $keys : ARRAYREF, [cv => $cv], [ expire => $expire ], cb => $cb->( $rc, $err ) )
Retrieve the value and its CAS for a $key. $key should be a scalar.
NOT IMPLEMENTED YET
delete( $key, [cv => $cv], [ noreply => 1 ], cb => $cb->( $rc, $err ) )
Delete $key and its value from the cache.
If noreply
is true, cb doesn't required
del
Alias for "delete"
remove
Alias for "delete"
incr( $key, $increment, [cv => $cv], [ noreply => 1 ], cb => $cb->( $rc, $err ) )
Increment the value for the $key by $delta. Starting with memcached 1.3.3 $key should be set to a number or the command will fail. Note that the server doesn't check for overflow.
If noreply
is true, cb doesn't required, and if passed, simply called with rc = 1
Similar to DBI, zero is returned as "0E0", and evaluates to true in a boolean context.
decr( $key, $decrement, [cv => $cv], [ noreply => 1 ], cb => $cb->( $rc, $err ) )
Opposite to incr
rget( $from, $till, [ max => 100 ], [ '+left' => 1 ], [ '+right' => 1 ], [cv => $cv], cb => $cb->( $rc, $err ) )
Memcachedb 1.2.1-beta implements rget method, that allows to look through the whole storage
- $from
-
the starting key
- $till
-
finishing key
- +left
-
If true, then starting key will be included in results. true by default
- +right
-
If true, then finishing key will be included in results. true by default
- max
-
Maximum number of results to fetch. 100 is the maximum and is the default
BUGS
Since there is developer release, there may be a lot of bugs
Feature requests are welcome
Bug reports are welcome
AUTHOR
Mons Anderson, <mons at cpan.org>
COPYRIGHT & LICENSE
Copyright 2009 Mons Anderson, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.