» Flush memcached using BASH
If you store application data in memcache, you may want to invalidate it once you deploy a new version to avoid corruption or weird results. There are several ways to do this but I recently tried one using nothing but BASH, and I like it.
Flush memcache in BASH
Just add this to your deploy script:
echo "flush_all" | /bin/netcat -q 2 127.0.0.1 11211
(remember, all entries will be flushed. this is not the way to fly in high performance environments)
Bonus: Flush disk cache
Also, if you have cache files on disk, this is probably one of the best ways to trash them:
find YOUR/WEB/DIR/app/tmp/cache/ -type f -print0 | xargs -0 rm
It's actually a simplified version from what PHP uses to clean up session garbage files (see /etc/cron.d/php5)
What's good about this elaborate approach, is that it deals with
- "argument list too long"
by using find instead of a 'rm *' - non-unix characters
print0 will delimit files by the 0 character, so you won't have to escape spaces or any other 'crazy' chars
Stay up to date
You can track my blog
articles and
comments. You may also find my
bookmarks interesting. Or
Follow me on Twitter
Like this article?
|
Then Digg it! Or use another bookmark button below to show your support & help me spread the word. |
RelatedArticles like this one» Install Squid & Apache on 1 server |
tags: memcached, flush, netcat, bash, cakephp
category: Howto - System
read: 2,361 times






tagcloud
#3. Maurits on 14 January 2010
#2. Kevin on 17 September 2009
#1. Robin Speekenbrink on 08 September 2009
a little off topic maybe: why not use the -delete option in find to delete all the found files instead of piping it to xargs etc? Does that have a special reason to it?