Что-то, что мне интересно ... Что было бы "наиболее эффективным" для кеширования генерации, скажем, RSS-канала? Или ответ API (например, ответ на /api/films/info/a12345
).
Например, должен ли я кешировать весь канал и попытаться вернуть его в виде кода psuedo:
id = GET_PARAMS['id']
cached = memcache.get("feed_%s" % id)
if cached is not None:
return cached
else:
feed = generate_feed(id)
memcache.put("feed_%s" % id, feed)
return feed
Или кешировать результаты запросов и каждый раз генерировать документ?
id = sanitise(GET_PARMS['id'])
query = query("SELECT title, body FROM posts WHERE id=%%", id)
cached_query_result = memcache.get(query.hash())
if cached_query_result:
feed = generate_feed(cached_query_result)
return feed
else:
query_result = query.execute()
memcache.put("feed_%s" % id, query_result)
feed = generate_feed(query_result)
(Или как-то иначе мне не хватает?)