我只是在Google App Engine上试用Appstats和NDB。
据我所知,关注put后的立即获取将来自本地内存缓存,但为什么会有memcache删除操作?
这是所有代码:
import webapp2
from google.appengine.ext import ndb
class Specs(ndb.Model):
make = ndb.StringProperty()
model = ndb.StringProperty()
doors = ndb.IntegerProperty()
wheels = ndb.IntegerProperty()
class Car(ndb.Model):
_use_memcache = True
_use_cache = True
specs = ndb.LocalStructuredProperty(Specs)
class MainHandler(webapp2.RequestHandler):
def get(self):
my_car = Car(id='some-car')
specs = Specs(
make = "Volvo",
model = "240",
doors = 5,
wheels = 4
)
my_car.specs = specs
result = my_car.put()
my_car_by_get = result.get()
self.response.write('Saved car')
app = webapp2.WSGIApplication([
('/', MainHandler),
], debug=True)
Appstats时间表:
答案 0 :(得分:1)
由于自动缓存,当您使用NDB时,每memcache.Delete()
都会调用put()
,这是设计使然。如果您希望在缓存方面有更好的控制或不同的行为,可以阅读有关NDB caching的更多信息。