0

我在 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)

但不幸的是,我帐户的数据存储区读取操作配额在一小时内就被超出了。

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

4

1 回答 1

0

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

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

引用该文件:

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
于 2013-07-16T18:48:00.060 回答