GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  ANYEVENT::MEMCACHED (3)

.ds Aq ’

NAME

AnyEvent::Memcached - AnyEvent memcached client

CONTENTS

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:,
       
        # May use another hashing algo:
        hasher  => AnyEvent::Memcached::Hash::WithNext,

        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: @_"
    } );

    # Single get
    $memd->get( key, cb => sub {
        my ($value,$err) = shift;
        $err and return warn "Get failed: @_";
        warn "Value for key is $value";
    } );

    # Multi-get
    $memd->get( [ 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 ($values,$err) = shift;
        $err and warn "Get failed: @_";
        while (my ($key,$value) = each %$values) {
            # ...
        }
    } );
   
    # Rget with sorted responce values
    $memd->rget( fromkey, tokey, rv => array cb => sub {
        my ($values,$err) = shift;
        $err and warn "Get failed: @_";
        for (0 .. $#values/2) {
            my ($key,$value) = @$values[$_*2,$_*2+1];
        }
    } );



DESCRIPTION

Asyncronous memcached/memcachedb client for AnyEvent framework

NOTICE

There is a notices in Cache::Memcached::AnyEvent related to this module. They all has been fixed
Prerequisites We no longer need Object::Event and Devel::Leak::Cb. At all, the dependency list is like in Cache::Memcached + AnyEvent
Binary protocol It seems to me, that usage of binary protocol from pure perl gives very little advantage. So for now I don’t implement it
Unimplemented Methods There is a note, that get_multi is not implementeted. In fact, it was implemented by method get, but the documentation was wrong.
In general, this module follows the spirit of AnyEvent rather than correspondence to Cache::Memcached interface.

METHODS

new CW%args

Currently supported options:
servers =item namespace =item debug =item cv =item compress_threshold =item compress_enable =item timeout =item hasher If set, will use instance of this class for hashing instead of default. For implementing your own hashing, see sources of AnyEvent::Memcached::Hash and AnyEvent::Memcached::Hash::With::Next
noreply If true, additional connection will established for noreply commands.
cas If true, will enable cas/gets commands (since they are not suppotred in memcachedb)

    set_servers



    Setup server list



    connect



    Establish connection to all servers and invoke event C<connected>, when ready



set( CW$key, CW$value, [cv => CW$cv], [ expire => CW$expire ], cb => CW$cb->( CW$rc, CW$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

cas( CW$key, CW$cas, CW$value, [cv => CW$cv], [ expire => CW$expire ], cb => CW$cb->( CW$rc, CW$err ) )



    $memd->gets($key, cb => sub {
        my $value = shift;
        unless (@_) { # No errors
            my ($cas,$val) = @$value;
            # Change your value in $val
            $memd->cas( $key, $cas, $value, cb => sub {
                my $rc = shift;
                if ($rc) {
                    # stored
                } else {
                    # ...
                }
            });
        }
    })



$rc is the same, as for set

Store the $value on the server under the $key, but only if CAS value associated with this key is equal to $cas. See also gets

add( CW$key, CW$value, [cv => CW$cv], [ expire => CW$expire ], cb => CW$cb->( CW$rc, CW$err ) )

Like set, but only stores in memcache if the key doesn’t already exist.

replace( CW$key, CW$value, [cv => CW$cv], [ expire => CW$expire ], cb => CW$cb->( CW$rc, CW$err ) )

Like set, but only stores in memcache if the key already exists. The opposite of add.

append( CW$key, CW$value, [cv => CW$cv], [ expire => CW$expire ], cb => CW$cb->( CW$rc, CW$err ) )

Append the $value to the current value on the server under the $key.

<B>appendB> command first appeared in memcached 1.2.4.

prepend( CW$key, CW$value, [cv => CW$cv], [ expire => CW$expire ], cb => CW$cb->( CW$rc, CW$err ) )

Prepend the $value to the current value on the server under the $key.

<B>prependB> command first appeared in memcached 1.2.4.

get( CW$key, [cv => CW$cv], [ expire => CW$expire ], cb => CW$cb->( CW$rc, CW$err ) )

Retrieve the value for a $key. $key should be a scalar

get( CW$keys : ARRAYREF, [cv => CW$cv], [ expire => CW$expire ], cb => CW$cb->( CW$values_hash, CW$err ) )

Retrieve the values for a $keys. Return a hash with keys/values

gets( CW$key, [cv => CW$cv], [ expire => CW$expire ], cb => CW$cb->( CW$rc, CW$err ) )

Retrieve the value and its CAS for a $key. $key should be a scalar.

$rc is a reference to an array [$cas, $value], or nothing for non-existent key

gets( CW$keys : ARRAYREF, [cv => CW$cv], [ expire => CW$expire ], cb => CW$cb->( CW$rc, CW$err ) )

Retrieve the values and their CAS for a $keys.

$rc is a hash reference with $rc->{$key} is a reference to an array [$cas, $value]

delete( CW$key, [cv => CW$cv], [ noreply => 1 ], cb => CW$cb->( CW$rc, CW$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( CW$key, CW$increment, [cv => CW$cv], [ noreply => 1 ], cb => CW$cb->( CW$rc, CW$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( CW$key, CW$decrement, [cv => CW$cv], [ noreply => 1 ], cb => CW$cb->( CW$rc, CW$err ) )

Opposite to incr

rget( CW$from, CW$till, [ max => 100 ], [ ’+left’ => 1 ], [ ’+right’ => 1 ], [cv => CW$cv], [ rv => ’array’ ], cb => CW$cb->( CW$rc, CW$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
rv If passed rv => ’array’, then the return value will be arrayref with values in order, returned by memcachedb.

incadd ( CW$key, CW$increment, [cv => CW$cv], [ noreply => 1 ], cb => CW$cb->( CW$rc, CW$err ) )

Increment key, and if it not exists, add it with initial value. If add fails, try again to incr or fail

    destroy

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

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.

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 ANYEVENT::MEMCACHED (3) 2016-04-03

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.