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 strange results. There are several ways to do this but the BASH way is;
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

g33kadmin

I am a g33k, Linux blogger, developer, student and Tech Writer for Liquidweb.com/kb. My passion for all things tech drives my hunt for all the coolz. I often need a vacation after I get back from vacation....

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.