Cache::Memcached - client library for memcached (memory cache daemon)
use Cache::Memcached;
$memd = new Cache::Memcached { 'servers' => [ "10.0.0.15:11211", "10.0.0.15:11212", "/var/sock/memcached", "10.0.0.17:11211", [ "10.0.0.17:11211", 3 ] ], 'debug' => 0, 'compress_threshold' => 10_000, }; $memd->set_servers($array_ref); $memd->set_compress_threshold(10_000); $memd->enable_compress(0);
$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);
http://www.danga.com/memcached/
Use "compress_threshold" to set a compression threshold, in bytes. Values larger than this threshold will be compressed by "set" and decompressed by "get".
Use "no_rehash" to disable finding a new memcached server when one goes down. Your application may or may not need this, depending on your expirations and key usage.
Use "readonly" to disable writes to backend memcached servers. Only get and get_multi will work. This is useful in bizarre debug and profiling cases only.
Use "namespace" to prefix all keys with the provided namespace value. That is, if you set namespace to ``app1:'' and later do a set of ``foo'' to ``bar'', memcached is actually seeing you set ``app1:foo'' to ``bar''.
The other useful key is "debug", which when set to true will produce diagnostics on STDERR.
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.
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.
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.
Like "set", but only stores in memcache if the key doesn't already exist.
Like "set", but only stores in memcache if the key already exists. The opposite of "add".
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.
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.
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.
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:
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.
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.
You may distribute under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.
Anatoly Vorobey <mellon@pobox.com>
Brad Whitaker <whitaker@danga.com>
Jamie McCarthy <jamie@mccarthy.vg>
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |