为了减少数据存储读写,人们建议使用内存缓存:谷歌应用程序引擎:通过型号名称作为参数传递给函数
写:
entity.put()
memcache.set(entity.key.id(), entity)
阅读:
# id known:
entity = memcache.get(id)
if entity is None:
entity = Model.get_by_id(id)
memcache.set(id, entity)
我想实现以上两个功能:
def memPut(entity):
entity.put()
memcache.set(entity.key.id(), entity)
def memGet(Model, id):
entity = memcache.get(id)
if entity is None:
entity = Model.get_by_id(id)
memcache.set(id, entity)
memGet
只是假设。我的问题:1)如何将模型的名称作为参数传递给函数? 2)如果创建实体时没有指定一个id,GAE将使用一个整数作为它的id。如果有两个实体(当然是来自不同型号)具有相同的ID? memcache.get(id)会工作吗?
是的,我确实使用了ndb。也许我对它并不熟悉。那么,你是说我正在尝试做的事情已经在ndb中完成了?那么,这是一个好消息。 – 2013-03-01 13:31:47
是的。 ndb为get_by_id()自动缓存,但不会缓存查询。 – dragonx 2013-03-01 16:33:33