I was using Kayak today and noticed they had a link about their technology. One thing I noticed was that they use Ruby, which I’ve been reading about more lately, especially the uber-sexy Ruby on Rails. But Kayak also mentioned that they use memcached to cache common database results. It’s basically a super-fast distributed dictionary (key/value pairs) object that you can spread across multiple servers without replicating data all over the place.
Since I’m a Microsoft developer, I normally cache web server stuff using the good ol’ Cache object, or maybe the Caching Enterprise Library. Which works fine. But memcached makes a good point, in that if you have, say, 50 web servers, running multiple processes, then you’re going to be potentially storing the same data multiple times on every machine. memcached stores your data once, and scales across as many machines as you run it on. And since memcached is built as a caching system, it could potentially be much faster than caching things in a database.
But don’t take my word for it, especially since I’m just paraphrasing their “about” page. Read more about how it works on the memcached home page … if it sounds intriguing to you, you should check it out. What’s the worst that could happen? 🙂