GAE Python优化数据存储读取操作配额超出

时间:2013-07-16 18:34:52

标签: python google-app-engine memcached google-cloud-datastore

我在GAE上使用python设计了一个非常简单的应用程序。它使用谷歌数据存储。

在我的应用程序中,我以这种方式从数据存储中读取:

user_db = db.GqlQuery("SELECT * FROM Names WHERE name=:1", key) 
user = user_db.get()

以这种方式将数据存储在datasotre中:

class Names(db.Model):
    name = db.StringProperty(required=True)
    id = db.StringProperty(required=True)
    result = db.StringProperty(required=True)
e = Names(name=key,id=23,result=test)

但遗憾的是,我的帐户的数据存储区读取操作配额在一小时内就已超出。

我听说过关于memcache的一些事情。所以我想知道如何使用mem cache优化这些读/写操作?

1 个答案:

答案 0 :(得分:0)

memcache here有一个很好的介绍指南。

当您需要一大块数据时,您会尝试在内存缓存中找到它。如果它不存在,则执行正常的数据库查找,并将结果存储在内存缓存中以供以后使用。 Memcache遵循"最近最少使用" (LRU)驱逐政策。这意味着当您去添加条目并且缓存已达到存储限制时,将删除最长时间保持不变的条目。

引用该文件:

Memcache通常使用以下模式:

  • 应用程序从用户或应用程序接收查询。
  • 应用程序检查满足该查询所需的数据是否在memcache中。
    • 如果数据在memcache中,则应用程序使用该数据。
    • 如果数据不在memcache中,则应用程序将查询数据存储区并将结果存储在memcache中以供将来请求使用。

下面的伪代码表示典型的内存缓存请求:

def get_data():
    data = memcache.get('key')
    if data is not None:
        return data
    else:
        data = self.query_for_data()
        memcache.add('key', data, 60)
        return data