"set_servers"
Sets the server list this module distributes key gets and sets between. The format is an arrayref of
identical form as described in the "new" constructor.
"set_debug"
Sets the "debug" flag. See "new" constructor for more information.
"set_readonly"
Sets the "readonly" flag. See "new" constructor for more information.
"set_norehash"
Sets the "no_rehash" flag. See "new" constructor for more information.
"set_compress_threshold"
Sets the compression threshold. See "new" constructor for more information.
"set_connect_timeout"
Sets the connect timeout. See "new" constructor for more information.
"set_select_timeout"
Sets the select timeout. See "new" constructor for more information.
"enable_compress"
Temporarily enable or disable compression. Has no effect if "compress_threshold" isn't set, but has
an overriding effect if it is.
"get"
my $val = $memd->get($key);
Retrieves a key from the memcache. Returns the value (automatically thawed with Storable, if
necessary) or undef.
The $key can optionally be an arrayref, with the first element being the hash value, if you want to
avoid making this module calculate a hash value. You may prefer, for example, to keep all of a given
user's objects on the same memcache server, so you could use the user's unique id as the hash value.
"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.
This method is recommended over regular 'get' as it lowers the number of total packets flying around
your network, reducing total latency, since your app doesn't have to wait for each round-trip of
'get' before sending the next one.
"set"
$memd->set($key, $value[, $exptime]);
Unconditionally sets a key to a given value in the memcache. Returns true if it was stored
successfully.
The $key can optionally be an arrayref, with the first element being the hash value, as described
above.
The $exptime (expiration time) defaults to "never" if unspecified. If you want the key to expire in
memcached, pass an integer $exptime. If value is less than 60*60*24*30 (30 days), time is assumed to
be relative from the present. If larger, it's considered an absolute Unix time.
"add"
$memd->add($key, $value[, $exptime]);
Like "set", but only stores in memcache if the key doesn't already exist.
"replace"
$memd->replace($key, $value[, $exptime]);
Like "set", but only stores in memcache if the key already exists. The opposite of "add".
"delete"
$memd->delete($key[, $time]);
Deletes a key. You may optionally provide an integer time value (in seconds) to tell the memcached
server to block new writes to this key for that many seconds. (Sometimes useful as a hacky means to
prevent races.) Returns true if key was found and deleted, and false otherwise.
You may also use the alternate method name remove, so Cache::Memcached looks like the Cache::Cache
API.
"incr"
$memd->incr($key[, $value]);
Sends a command to the server to atomically increment the value for $key by $value, or by 1 if $value
is undefined. Returns undef if $key doesn't exist on server, otherwise it returns the new value
after incrementing. Value should be zero or greater. Overflow on server is not checked. Be aware
of values approaching 2**32. See decr.
"decr"
$memd->decr($key[, $value]);
Like incr, but decrements. Unlike incr, underflow is checked and new values are capped at 0. If
server value is 1, a decrement of 2 returns 0, not -1.
"stats"
$memd->stats([$keys]);
Returns a hashref of statistical data regarding the memcache server(s), the $memd object, or both.
$keys can be an arrayref of keys wanted, a single key wanted, or absent (in which case the default
value is malloc, sizes, self, and the empty string). These keys are the values passed to the 'stats'
command issued to the memcached server(s), except for 'self' which is internal to the $memd object.
Allowed values are:
"misc"
The stats returned by a 'stats' command: pid, uptime, version, bytes, get_hits, etc.
"malloc"
The stats returned by a 'stats malloc': total_alloc, arena_size, etc.
"sizes"
The stats returned by a 'stats sizes'.
"self"
The stats for the $memd object itself (a copy of $memd->{'stats'}).
"maps"
The stats returned by a 'stats maps'.
"cachedump"
The stats returned by a 'stats cachedump'.
"slabs"
The stats returned by a 'stats slabs'.
"items"
The stats returned by a 'stats items'.
"disconnect_all"
$memd->disconnect_all;
Closes all cached sockets to all memcached servers. You must do this if your program forks and the
parent has used this module at all. Otherwise the children will try to use cached sockets and
they'll fight (as children do) and garble the client/server protocol.
"flush_all"
$memd->flush_all;
Runs the memcached "flush_all" command on all configured hosts, emptying all their caches. (or
rather, invalidating all items in the caches in an O(1) operation...) Running stats will still show
the item existing, they're just be non-existent and lazily destroyed next time you try to detch any
of them.