How is Memcache Distributed?

memcachedperformancephp5

I've got memcache running on 5 web servers all of which are on the host list in php and which are load balanced on the front end. So since memcached is supposed to be distributed the php client will decide which node to write key/value pairs to and keep a record for later retrieval from that same node right?

Or is the php client code not smart enough to do that and rather it writes the data to all the servers and then randomly pics one from the pool to read from?

But if it does that; write to all instances in the host list / pool; then what is the purpose for a tool like http://repcached.sourceforge.net/ which replicates data for redundancy.

Reason I ask is because all the load balanced servers are running it and if it does indeed write to all the servers in the pool then it seems like it defeats the purpose of it being distributed and so I should just force php to pull from the host in the hostlist that is localhost.

Best Answer

Memecache library is responsible for sending the request to the correct server. The library uses the list you provide to send requests to different servers and memcache doesn't do replication.

Refer to the Linux journal article. It explains how memcache works in more detail.