Memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load. The main programmer is Brad Fitzpatrick, with patches and code submissions from users that are listed in the CONTRIBUTORS file.

The program consists of a single daemon, which is highly configurable. Some options include memory limits, port and address to listen on, and what user to run as. There are, of course, more options listed in the documentation.

Many popular websites such as LiveJournal and Slashdot use Memcached with great success. In August 2003 it was announced1 in the Memcached mail list that Everydevel is working on integrating support into Everything2 (which you are using now). Other sites that are integrating support include SourceForge and WikiPedia.

Memcached stores data into RAM, using a hash structure to associate a user-defined key to the stored value. Storing data in RAM is, of course, faster than database access or disk access. Memcached has allowed LiveJournal to expand as fast as it has, since there is not a need for a massive backend cluster or load balancing.

Developers can use a Perl, PHP, Java, or Python API to develop with; or they can develop their own API from the protocol documentation2. Memcached is licensed under the BSD license and functions under Linux and BSD (and probably others, too).

1: As a note: I am told that E2 does implement memcached. There was no post to the mail list to update the status. A quick grep -ir memcache * of the source provided from shows no instance of memcached (which means that the Perl API is not used). Rather than outright claim that E2 is using Memcached (without direct evidence) I will rather leave the status as "being implemented" and leave this note. Thanks ascorbic for bringing this to attention.

Log in or register to write something here or to contact authors.