memcached - a distributed memory object caching system

About Memcached

memcached is a high-performance, distributed memory object caching system, generic in nature, but originally intended for use in speeding up dynamic web applications by alleviating database load.

You can think of it as a short-term memory for your applications.

What it Does


memcached allows you to take memory from parts of your system where you have more than you need and make it accessible to areas where you have less than you need.

memcached also allows you to make better use of your memory. If you consider the diagram to the right, you can see two deployment scenarios:

  1. Each node is completely independent (top).
  2. Each node can make use of memory from other nodes (bottom).

The first scenario illustrates the classic deployment strategy, however you'll find that it's both wasteful in the sense that the total cache size is a fraction of the actual capacity of your web farm, but also in the amount of effort required to keep the cache consistent across all of those nodes.

With memcached, you can see that all of the servers are looking into the same virtual pool of memory. This means that a given item is always stored and always retrieved from the same location in your entire web cluster.

Also, as the demand for your application grows to the point where you need to have more servers, it generally also grows in terms of the data that must be regularly accessed. A deployment strategy where these two aspects of your system scale together just makes sense.

The illustration to the right only shows two web servers for simplicity, but the property remains the same as the number increases. If you had fifty web servers, you'd still have a usable cache size of 64MB in the first example, but in the second, you'd have 3.2GB of usable cache.

Of course, you aren't required to use your web server's memory for cache. Many memcached users have dedicated machines that are built to only be memcached servers.


Memcached was originally developed by Brad Fitzpatrick for LiveJournal in 2003.


dormando (537) Dustin Sallings (214) Brad Fitzpatrick (164) Trond Norbye (130)
Paul Lindner (58) Toru Maesaka (34) Steven Grimm (25) Steve Yen (15)
Anatoly Vorobey (15) Brian Aker (14) Tomash Brechko (12) hachi (7)
Steve Wills (6) Dan McGee (6) Aaron Stone (6) Guillaume Delacour (6)
Evan Martin (5) Matt Ingenthron (5) Craig Andrews (4) Miroslav Lichvar (4)
Victor Kirkebo (4) Chris Goffinet (4) Stanisław Pitucha (4) Eric McConville (4)
sergiocarlos (3) Andrei Nigmatulin (3) Jay Grizzard (3) Eric Lambert (3)
Daniel Pañeda (3) Cameron Norman (3) J. Grizzard (2) Clint Byrum (2)
Ricky Zhou (2) Paolo Borelli (2) Eric Hodel (2) Brion Vibber (2)
祁冰 (2) David Bremner (2) Jean-Francois BUSTARRET (2) Monty Taylor (2)
Colin Pitrat (2) Doug Porter (2) Jay Bonci (2) Cosimo Streppone (2)
Giovanni Bechis (2) Evan Miller (2) Antony Dovgal (2) Jason CHAN (2)
Mat Hostetter (2) River Tarnell (1) Miklos Vajna (1) Lisa Seelye (1)
James Cohen (1) Filipe Laborde (1) Torsten Foertsch (1) Chang Song (1)
Clinton Webb (1) Evan Klitzke (1) Vladimir (1) David Phillips (1)
伊藤洋也 (1) Ted Schundler (1) Alexander Pyhalov (1) theblop (1)
Tao Hui (1) clark.kang (1) Mathieu CARBONNEAUX (1) Don MacAskill (1)
Adam Szkoda (1) Michael Alan Dorman (1) kenvifire (1) Elizabeth Mattijsen (1)
Thomas van Gulick (1) Saman Barghi (1) Ryan Tomayko (1) Gordon Franke (1)
Adam Dixon (1) Fumihiro Ito (1) Dagobert Michelsen (1) Gabriel A. Samfira (1)
akisssa (1) Richard Russo (1) hiracy (1) Mike Dillon (1)
js (1) Paul Querna (1) CaptTofu (1) wangkang-xy (1)
Maksim Zhylinski (1) David Schoen (1) Jon Jensen (1) Jonathan Bastien-Filiatrault (1)
Fordy (1) Qian Li (1) Maxim Dounin (1) Léon Brocard (1)
Remi Collet (1) Huzaifa Sidhpurwala (1) meteorgan (1) Jonathan Steinert (1)
Alex Leone (1) Jeff Lawson (1) Andrew Glinskiy (1) David Oliveira (1)
Wing Lian (1) Artur Bergman (1) Matt Fowles Kulukundis (1) yuryur (1)
Joe Orton (1) Peter (Stig) Edwards (1) Jason Titus (1) Jamie McCarthy (1)
Eli Bingham (1) Mattias Geniar (1) Ryan McCullagh (1) Ben Evans (1)
Steve Peters (1) Juliy V. Chirkov (1) nirvanazc (1) Menghan (1)
Nick (1) Keyur (1) Andrey Niakhaichyk (1) Ryan T. Dean (1)
Jeremy Sowden (1) Adam Chainz (1) Jørgen Austvik (1) Oskari Saarenmaa (1)
Dmitry Isaykin (1) Yongyue Sun (1) Manish Katiyar (1) zhoutai (1)
Grant Mathews (1) Eiichi Tsukata (1) Natanael Copa (1) mckelvin (1)
Iain Wade (1) Peter van Dijk (1) David Carlier (1) Roman Mueller (1)
Theo Najim (1) Johan Bergström (1) Tomas Kalibera (1) Dan Christian (1)
Alwayswithme (1) Kenneth Steele (1) Adam Thomason (1) Caleb Shay (1)
Nathan Neulinger (1) Simon Liu (1) mdl (1) Tim Yardley (1)
Nate (1) liu bo (1) githublvv (1) Josh Soref (1)
Ian Miell (1) Sharif Nassar (1)