我在使用 memcache 和 GAE DB 操作时遇到了一些麻烦。如果我在 DB 操作后更新 memcache rigth,例如 x.put(),我的 memcache 函数经常返回旧值。如果我使用 sleep(),缓存更经常正确,但我认为这是不对的
sleep(0.2)
data = Picture.all().order('-created').fetch(300)
memcache.set('pictures_all', data)
我需要做什么才能获得正确的内存缓存?
回答: 需要使用父查询,所有图片实体必须有相同的父,然后你得到强一致的结果
data = Picture.all().order('-created').ancestor(main_key()).fetch(300)
memcache.set('pictures_all', data)