Tools and config for memcache related caching
Project description
Introduction
This package combines the features from lovely.memcached and plone.memoize.ram. It provides a decorator and utility for Memcaches at EEA. The decorator allows you set dependencies known by lovely.memcached
Contents
Installation
zc.buildout
If you are using zc.buildout and the plone.recipe.zope2instance recipe to manage your project, you can do this:
Update your buildout.cfg file:
Add eea.cache to the list of eggs to install
Tell the plone.recipe.zope2instance recipe to install a ZCML slug
Add memcache
parts += libevent memcached memcached-ctl effective-user = zope-www [instance] ... eggs = ... eea.cache zcml = ... eea.cache-overrides [libevent] recipe = zc.recipe.cmmi url = http://www.monkey.org/~provos/libevent-1.4.8-stable.tar.gz [memcached] recipe = zc.recipe.cmmi url = http://www.danga.com/memcached/dist/memcached-1.2.6.tar.gz extra_options = --with-libevent=${libevent:location} [memcached-ctl] recipe = lovely.recipe:mkfile path = ${buildout:bin-directory}/memcached mode = 0755 content = #!/bin/sh export LD_LIBRARY_PATH=${libevent:location}/lib PIDFILE=${memcached:location}/memcached.pid case "$1" in start) ${memcached:location}/bin/memcached -d -u ${buildout:effective-user} -P $PIDFILE ;; stop) kill `cat $PIDFILE` ;; restart|force-reload) $0 stop sleep 1 $0 start ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2 exit 1 ;; esac
Re-run buildout, e.g. with:
$ bin/buildout -c buildout.cfg
Restart memcache and Zope:
$ bin/memcached restart $ bin/instance restart
Dependencies
- EEA Cache has the following dependencies:
Plone 4+
lovely.memcached
Source code
- Latest source code (Zope 2 compatible):
Cache decorator
>>> def key(method, self): ... return method.__name__>>> from eea.cache import cache >>> @cache(key, dependencies=["frontpage"]) ... def myMethod(num): ... return num*num
Lets clear any running memcache
>>> from lovely.memcached.event import InvalidateCacheEvent >>> from zope.event import notify >>> notify(InvalidateCacheEvent(raw=True, dependencies=['frontpage']))
Our myMethod will now be cached with the key returned from the method ‘key’ and with dependency ‘frontpage’.
>>> myMethod(2) 4 >>> myMethod(3) 4>>> notify(InvalidateCacheEvent(raw=True, dependencies=['frontpage'])) >>> myMethod(3) 4
Copyright and license
The Initial Owner of the Original Code is European Environment Agency (EEA). All Rights Reserved.
The eea.cache (the Original Code) is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
More details under docs/License.txt
Funding and project management
EEA - European Environment Agency (EU)
Changelog
5.0 - (2012-10-08)
Change: Updated README and egg’s metadata [voineali refs #5434]
4.3 - (2012-07-13)
Bug fix: fixed markup of HISTORY.txt file [ciobabog refs #5231]
4.2 - (2012-02-06)
no changes
4.0 - (2011-11-07)
Feature: Plone 4.x compatible release [ghicaale #4309]
0.3 - (2010-11-22)
Bug fix: fixed tests namespace in order to be used within hudson [voineali #3821]
0.2 - (2010-11-10)
Bug fix: added fake memcache client in order to fix broken doctests [voineali]
0.1 - (2009-11-10)
Initial release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.