2009/3/3 Jonathan <jricket...@gmail.com>: > > I am using a restful interface for an ajax application and want to be > able to store the results of queries in memcache, 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 import memcache 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 google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---