NAME
   AnyEvent::Memcached - AnyEvent memcached client

VERSION
   Version 0.02

NOTICE
   Interface is stabilized. Some features could be rewritten in future with
   minor changes.

   Documentation is incomplete yet, look at tests, examples, sources for
   now ;)

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:

   servers =item namespace =item debug =item cv =item compress_threshold
   =item compress_enable =item timeout =item noreply
       If true, additional connection will established for noreply
       commands. Beware, feature is under development and may be unstable

 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

   '1' Successfully stored

   '0' Item was not stored

   undef
       Error happens, see $err

 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

 destroy
   Shutdown object as much, as possible, incl cleaning of incapsulated
   objects

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.