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.


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.

| improve this answer | |
  • Great article just what I needed, thanks Sameer. I also found this one that was extremely helpful: code.google.com/p/memcached/wiki/NewConfiguringClient – Mike Dec 10 '10 at 11:47
  • Note that memcache partitions the data onto multiple computers based on the key, that means it can be good to distribute work evenly over the key space so that one machine isn't hit with all the traffic if its all for one key. – lee penkman Mar 23 '16 at 4:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.