2011-02-13 103 views
1

我已经使用谷歌应用程序引擎构建了一个应用程序。该应用程序工作正常,但我目前正在考虑优化它,特别是我听说过这种持久对象的概念,而不是数据存储区,作为快速访问经常需要的数据的一种手段。将对象保存在MemCache中而不是数据存储区

假设我有这个模型的对象:

class Ea(db.Model): 
    name = db.StringProperty() 
    code = db.StringProperty() 

而且我下面要说的情况下我想保持在memcache

myea = Ea.new(name='John',code='@jo') 

我该怎么办呢?

回答

5

如果您关心数据,您应该先将其写入数据存储。您可以使缓存预写无效,然后根据您的应用程序在写入后或第一次读取时重新缓存。

查看Nick的帖子efficiently memcaching models;他提出了一个很好的模式,并将帮助您避免一些常见问题。

+0

好吧,我打算提交到数据存储,但我想知道如何提交memcache,以提高性能。 – nemesisfixx 2011-02-14 00:43:49

0

Robert Kluin指定的链接适用于基于数据库的模型。对于基于ndb的模型,您可以使用它。

def ndb_entity_to_protobuf(e): 
    return ndb.ModelAdapter().entity_to_pb(e).Encode() 

def protobuf_to_ndb_entity(pb): 
    # precondition: model class must be imported 
    return ndb.ModelAdapter().pb_to_entity(entity_pb.EntityProto(pb)) 
相关问题