Spreading key/value pairs across multiple memcached servers

Chris Hartjes chartjes at gmail.com
Wed Dec 1 09:00:19 PST 2004


/me smacks himself in the head

Thanks very much Brad.

/me goes reads up on hash functions and prepares presentation for boss


On Wed, 1 Dec 2004 08:56:47 -0800 (PST), Brad Fitzpatrick
<brad at danga.com> wrote:
> On Wed, 1 Dec 2004, Chris Hartjes wrote:
> 
> > Pardon my ignorance of memcached as I post the following scenario:
> >
> > 1) I create an instance of a memecached client (PHP version)
> > 2) I'm using memcached to cache MySQL result sets, using the query
> > itself as the key
> > 3) I ask memcached "hey, retrieve this key from memcache for me"
> >
> > Now, if I have two servers, what server will it talk to in order to
> > find out where the key is?
> 
> The right one.
> 
> The memcached client library knows how to find the right server
> immediately, without searching them all.  It uses a hash function to
> calculate the hash of the key, mod the number of memcached servers.
> 
> Read:
> http://en.wikipedia.org/wiki/Hash_function
> 
> > Will it always talk to the first server in
> > the list?  I understand that the various servers are aware of what
> > server a particular key is on.  I also understand it will only take
> > one request to find out where a key is.  But again, will that request
> > for the location of the key always go to one server?
> 
> It will go to no server.  It doesn't need to ask anybody where the key
> is at.  It just knows.
> 
> - Brad
> 
> 


-- 
Chris Hartjes

"I know monkeys, and monkeys are good people!"


More information about the memcached mailing list