Memcached and two dimensional array

Chris Hondl chris at imvu.com
Thu Jun 29 17:20:46 UTC 2006


I got several requests for the code so I'll reply to list.

I've posted a blog entry with a little more info at
http://www.imvu.com/technology  (direct
link<http://www.imvu.com/blogs/index.php?blog=793&title=extensions_to_php_memcached_api>).
I've posted the code at http://www.imvu.com/technology/memcache.tar.gz (also
linked from the blog post).

Chris

-- 
http://avatars.imvu.com/chris



On 6/28/06, Chris Hondl <chris at imvu.com> wrote:
>
>
> This problem sounds similar to a problem we've solved with our database
> query cache.  We have many distinct database queries that we cache about a
> particular entity (user, product, etc.), and we want to flush all of the
> queries when the underlying data changes.
>
> We've solved this problem by wrapping the memcache interface with an
> extension api to support what we call "cache-class".  The api supports
> assigning any memcache key to a cache-class when get/set/add is called.  The
> api also has a function to flush all the keys associated with a
> cache-class.
>
> This is implemented at the cost of 0-2 extra memcache accesses per
> operation and requires no chance to the memcache server.  The extra accesses
> are used to maintain a version number associated with each cache-class.  The
> flush call simply increments the version number, and the wrapped get call
> ignores any data with an old version number.
>
> We've had this in production for over two months.  Our implementation is
> in PHP and is pretty self-contained.  Be glad to share with anyone
> interested.
>
> Chris
> --
> http://avatars.imvu.com/chris
>
>
>
> On 6/28/06, NTPT <NTPT at seznam.cz> wrote:
> >
> > Memcached and two dimensional array
> >
> >
> > Hi.
> >
> > I have folowing situation in my project. I have "user data" identified
> > by "user_id" and  object data identified by "object_id"
> >
> > Now i need to render data of the object identified by object_id  with
> > settings  stored in "user data". This process add a lot of overhead, so it
> > need to be chached with memcached . So i construct key string like this in
> > PHP  $key = user_id . "_" . object_id  It can cleany lidentify rendered
> > data, it is fine.
> >
> >
> > But  "user data" and "object data" are changing quite fast. So i need a
> > way to delete all data that are cached for some user, if user data are
> > changed, and all rendered instance of certain object if the object is
> > changed.
> >
> > Like in two dimensional array deleting a whole row or a whole column. Is
> > it possible with memcache ?
> >
> > For now, it seems that only way to do is a flush a single key (with is
> > insufficient) or flush entire cache with is too much....
> >
> >
> > Thanx for help.
> >
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.danga.com/pipermail/memcached/attachments/20060629/ee483486/attachment.html


More information about the memcached mailing list