Announcing Cache::Memcached::Managed

Brad Fitzpatrick brad at
Fri Jul 8 22:34:20 PDT 2005

I was planning on releasing a module named Cache::Memcached::Managed for a
totally different purpose.  (memcached's new managed mode...)

Bleh, guess I'll need to find a new name.

I suppose I'll just have a constructor option for Cache::Memcached
like managed => 1, and then have that actually bless as
Cache::Memcached::Type::Managed or something.


On Mon, 4 Jul 2005, Elizabeth Mattijsen wrote:

> With some pride, I would like to announce an extended API for
> handling memcached data in Perl.
> ==================================================================
> The uploaded file
>      Cache-Memcached-Managed-0.07.tar.gz
> has entered CPAN as
>    file: $CPAN/authors/id/E/EL/ELIZABETH/Cache-Memcached-Managed-0.07.tar.gz
>    size: 31839 bytes
>     md5: 5412fa36de221301e953039c1dac3386
> 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
> other.
> - 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
> Cache::Memcached distribution).
> 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 .
> Elizabeth Mattijsen

More information about the memcached mailing list