Memcached limitations

Richard Jones rj@last.fm
Fri, 24 Oct 2003 21:00:26 +0100


Thanks, that's exactly what i needed to know.
i'll be using indirection, as i want to conserve ram for other things.
I'm just ploughing through my php and caching as much as possible - memcache 
is great :)

On Friday 24 October 2003 8:12 pm, Brad Fitzpatrick wrote:
> There's no support for values accessible by multiple keys.  I suppose it'd
> be possible, but it's just not in there.
>
> LiveJournal has keys for username and userid, so we can lookup either way,
> but we just store the item twice, since the value is small (~1k).  It's
> your call:  indirection takes less memory, but has a tiny bit more
> latency.  Storing twice is bigger, but faster.
>
> Don't worry about number of keys.
>
> Looking at our stats now, LiveJournal stores 5.2 million keys per 2GB
> memcache and half that for our 1GB memcaches.
>
> On Fri, 24 Oct 2003, Richard Jones wrote:
> > Hi,
> > I have a bunch of user objects memcached, accessible via key "user:123"
> > where 123 is the user.id  I also need to reference users by a profile.id
> > (one user can have many profiles). Currently i lookup in the database the
> > user id associated with a given profile id, then fetch the user object
> > from memcached using the user.id from the datbase lookup
> >
> > What i need is the ability to use multiple keys pointing to the same
> > value. For example, user:123  and profile:789 point to the same cached
> > value because user123 has a profile with id 789 - no such thing as a
> > profile object, i just use profile ids to find users.
> >
> > Any clever tricks i can use to simulate this in a speedy way?
> >
> > I plan to store key/vals  "profile:789 --> 123" so that i can first
> > lookup the user.id  using the profile.id, and then retreive the value at
> > user:123.
> >
> > Just wanted to ask if there is a better way to do this..
> >
> > As an aside, how many keys can memcache cope with before performance
> > suffers, or is it just a case of having enough ram?
> >
> > How much overhead is there involved in storing (say) 200,000  
> > profile:789 --> 123  type items in memcached? should i mainly be
> > focussing on storing bigger items, or doesn't it matter?
> >
> > Thanks,
> > Richard.