Announcing Cache::Memcached::Managed

Elizabeth Mattijsen liz at
Sat Jul 9 00:24:24 PDT 2005

At 10:34 PM -0700 7/8/05, Brad Fitzpatrick wrote:
>I was planning on releasing a module named Cache::Memcached::Managed

Sorry to have treaded on your plans with the 
Cache::Memcached::Managed namespace, which were unknown to me.

>... for a
>totally different purpose.  (memcached's new managed mode...)

And what is that exactly?  I couldn't find anything about it.  Sounds exciting.

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

Not necessarily.  Renaming the moduled to something else would not be 
a big problem with its current seniority on CPAN.  I can't imagine 
there are 1000's of people already using it.  My other option was 
Cache::Memcached::Simple because of the simplified key generation. 
And yet another option would be Cache::Memcached::Groups because of 
the group management features.

>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.

As I said, not necessarily.  I would be glad to work out any 
namespace conflicts with you / the memcached list.

Elizabeth Mattijsen
>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