That is a really good idea. I guess it is able to be applied to other similar kinds of things too, where I am applying filters and paging on those results too. (though that would get a bit more tricky)
thanks Jonathan On Mar 3, 11:51 pm, Andi Albrecht <[email protected]> wrote: > 2009/3/3 Jonathan <[email protected]>: > > > > > > > I am using a restful interface for an ajax application and want to be > > able to store the results of queries inmemcache, as much of this data > > is read much more often than it is written, but it is occasionally > > written. > > > I have been trying to think of strategies for how to do this, whilst > > also maintaining the ability to invalidate the cache when necessary. > > > so for example: > > the user requests page 1 of their objects (0-9) and I store them with > > a key of "modelName-userName-pageNum" > > the user requests page 2 of their objects (10-19) and I store them > > with a key of "modelName-userName-pageNum" > > the user modifies an object on page 2, (or deletes it, or creates a > > new one) and I want to invalidate all "modelName-userName" cached > > lists. > > > how do I do this??? > > If you want to delete *all* 'modelName-userName' items, why not store > a mapping (just one cached value) with 'modelName-userName' as key. > > For example: > > from google.appengine.api importmemcache > key = 'model-user' > # load cached values > data =memcache.get(key) > if data is None: > data = {} > # query page1 > page1 = some_query() > data[1] = page1 > memcache.set(key, data) > # return response > # query page 2 > data =memcache.get(key) > if data is None: > data = {} > page2 = some_query() > data[2] = page2 > memcache.set(key, data) > > And if something's changed, just do "memcache.delete(key)". > > Andi > > > > > jonathan > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---
