14

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.

1 Answer 1

17

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.

2
  • Great article just what I needed, thanks Sameer. I also found this one that was extremely helpful: code.google.com/p/memcached/wiki/NewConfiguringClient Commented Dec 10, 2010 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. Commented Mar 23, 2016 at 4:33

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.