2011-02-13 135 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)) 
相關問題