liz at dijkmat.nl
Sun Jul 3 15:28:46 PDT 2005
With some pride, I would like to announce an extended API for
handling memcached data in Perl.
The uploaded file
has entered CPAN as
size: 31839 bytes
No action is required on your part
Request entered by: ELIZABETH (Elizabeth Mattijsen)
Request entered on: Sun, 03 Jul 2005 21:39:11 GMT
Request completed: Sun, 03 Jul 2005 21:39:52 GMT
What does this add to the Cache::Memcached API? In short:
- automatic key generation
The calling subroutine provides the key (by default). Whenever the
"get" and "set" operations occur in the same subroutine, you don't
need to think up an identifying key that will have to be unique
across the entire cache.
- ID refinement
An ID can be added to the (automatically) generated key (none is by
default), allowing easy identification of similar data objects (e.g.
the primary key of a Class::DBI object). If necessary, a unique ID
can be created automatically (useful when logging events).
- version management
The caller's package provides an identifying version (by default),
allowing differently formatted data-structures caused by source code
changes, to live seperately from each other in the cache.
- namespace support
A namespace identifier allows different realms to co-exist in the
same cache (the uid by default). This e.g. allows a group of
developers to all use the same cache without interfering with each
- group management
A piece of cached data can be assigned to any number of groups.
Cached data can be retrieved and removed by specifying the group to
which the data belongs. This can be used to selectively remove
cached data that has been invalidated by a database change, or to
obtain logged events of which the identification is not known (but
the group name is).
- easy (default) expiration specification
A default expiration per Cache::Memcached::Managed object can be
specified. Expirations can be used by using mnemonics D, H, M, S,
(e.g. '2D3H' would be 2 days and 3 hours).
- automatic fork() detection
Sockets are automatically reset in forked processes, no manual reset
needed. This allows the module to be used to access cached data
during the server start phase in a mod_perl environment.
- magical increment
Counters are automagically created with incr() if they don't exist yet.
- instant invalidation
Support for the new "flush_all" memcached action to invalidate all
data in a cache in one fell swoop.
- dead memcached server detection
An easy way to check whether all related memcached servers are still alive.
- starting/stopping memcached servers
Easy start / stop of indicated memcached servers, mainly intended for
development and testing environments.
- extensive test-suite
An extensive test-suite is included (which is sadly lacking in the
Please let me know of any problems, suggestions or other remarks. If
the file is not yet in your local CPAN mirror, you can access it from
my own repository of CPAN modules at http://www.liz.nl/CPAN .
More information about the memcached