NAME
Cache::Memcached::LibMemcached - Perl Interface to libmemcached
SYNOPSIS
use Cache::Memcached::LibMemcached;
my $memd = Cache::Memcached::LibMemcached->new({
serves => [ "10.0.0.15:11211", "10.0.0.15:11212", "/var/sock/memcached" ],
compress_threshold => 10_000
});
$memd->set("my_key", "Some value");
$memd->set("object_key", { 'complex' => [ "object", 2, 4 ]});
$val = $memd->get("my_key");
$val = $memd->get("object_key");
if ($val) { print $val->{complex}->[2] }
$memd->incr("key");
$memd->decr("key");
$memd->incr("key", 2);
$memd->delete("key");
$memd->remove("key"); # Alias to delete
my $hashref = $memd->get_multi(@keys);
DESCRIPTION
This is the Perl Interface to libmemcached, a C library to interface with memcached.
There's also a Memcached::libmemcached available on googlecode, but the intent of Cache::Memcached::LibMemcached is to provide users with consistent API as Cache::Memcached.
Cache::Memcached COMPATIBLE METHODS
Except for the minor incompatiblities, below methods are generally compatible with Cache::Memcached.
new
Takes on parameter, a hashref of options.
set_servers
$memd->set_servers( [ qw(serv1:port1 serv2:port2 ...) ]);
Sets the server list.
As of 0.00003, this method works like Cache::Memcached and replaces the current server list with the new one
get
my $val = $memd->get($key);
Retrieves a key from the memcached. Returns the value (automatically thawed with Storable, if necessary) or undef.
Currently the arrayref form of $key is NOT supported. Perhaps in the future.
get_multi
my $hashref = $memd->get_multi(@keys);
Retrieves multiple keys from the memcache doing just one query. Returns a hashref of key/value pairs that were available.
set
$memd->set($key, $value[, $expires]);
Unconditionally sets a key to a given value in the memcache. Returns true if it was stored successfully.
Currently the arrayref form of $key is NOT supported. Perhaps in the future.
add
$memd->add($key, $value[, $expires]);
Like set(), but only stores in memcache if they key doesn't already exist.
replace
$memd->replace($key, $value[, $expires]);
Like set(), but only stores in memcache if they key already exist.
incr
decr
my $newval = $memd->incr($key);
my $newval = $memd->decr($key);
my $newval = $memd->incr($key, $offset);
my $newval = $memd->decr($key, $offset);
Atomically increments or decrements the specified the integer value specified by $key. Returns undef if the key doesn't exist on the server.
delete
remove
$memd->delete($key);
Deletes a key.
XXX - The behavior when second argument is specified may differ from Cache::Memcached -- this hasn't been very well tested. Patches welcome!
flush_all
$memd->fush_all;
Runs the memcached "flush_all" command on all configured hosts, emptying all their caches.
set_compress_threshold
$memd->set_compress_threshold($threshold);
Set the compress threshold.
enable_compress
$memd->enable_compress($bool);
This is actually an alias to set_compress_enabled(). The original version from Cache::Memcached is, despite its naming, a setter as well.
Cache::Memcached::LibMemcached SPECIFIC METHODS
These methods are libmemcached-specific.
server_add
Adds a memcached server.
server_add_unix_socket
Adds a memcached server, connecting via unix socket.
server_list_free
Frees the memcached server list.
UTILITY METHODS
WARNING: Please do not consider the existance for these methods to be final. They may disappear from future releases.
get_compress_threshold
Return the current value of compress_threshold
set_compress_enabled
Set the value of compress_enabled
get_compress_enabled
Return the current value of compress_enabled
set_compress_savings
Set the value of compress_savings
get_compress_savings
Return the current value of compress_savings
VARIOUS MEMCACHED MODULES
Below are the various memcached modules available on CPAN.
Please check tool/benchmark.pl for a live comparison of these modules. (except for Cache::Memcached::XS, which I wasn't able to compile under my main dev environment)
Cache::Memcached
This is the "main" module. It's mostly written in Perl.
Cache::Memcached::LibMemcached
Cache::Memcached::LibMemcached, which is the module for which your reading the document of, is a perl binding for libmemcached (http://tangent.org/552/libmemcached.html). Not to be confused with libmemcache (see below).
Cache::Memcached::XS
Cache::Memcached::XS is a binding for libmemcache (http://people.freebsd.org/~seanc/libmemcache/). The main memcached site at http://danga.com/memcached/apis.bml seems to indicate that the underlying libmemcache is no longer in active development.
Cache::Memcached::Fast
Cache::Memcached::Fast is a memcached client written in XS from scratch.
AUTHOR
Copyright (c) 2008 Daisuke Maki <daisuke@endeworks.jp>
LICENSE
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See http://www.perl.com/perl/misc/Artistic.html