Announcing Cache::Memcached::Managed
Brad Fitzpatrick
brad at danga.com
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.
*shrug*
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 http://www.liz.nl/CPAN .
>
>
>
> Elizabeth Mattijsen
>
>
More information about the memcached
mailing list