Google app engine 数据存储和MemCache条目读取和定价

Google app engine 数据存储和MemCache条目读取和定价,google-app-engine,memcached,google-cloud-datastore,Google App Engine,Memcached,Google Cloud Datastore,数据存储按读取的实体数计费 如果一个实体是从memcache中读取的,它是否算作在数据存储中读取并计费的实体 如果一个实体在同一批中被多次读取,它算是一次读取还是多次读取 例如,经典的Post和Tag问题,我想在Post列表中查找标记的名称 class Post(ndb.Model): title = ndb.StringProperty() tag_ids = ndb.KeyProperty(repeated=True) class Tag(ndb.Model): name =

数据存储按读取的实体数计费

  • 如果一个实体是从memcache中读取的,它是否算作在数据存储中读取并计费的实体
  • 如果一个实体在同一批中被多次读取,它算是一次读取还是多次读取
  • 例如,经典的Post和Tag问题,我想在Post列表中查找标记的名称

    class Post(ndb.Model):
      title = ndb.StringProperty()
      tag_ids = ndb.KeyProperty(repeated=True)
    
    class Tag(ndb.Model):
      name = ndb.StringProperty()
    
    @ndb.tasklet
    def callback(post):
      tags = yield Tag.get_multi(tag_id for tag_id in post.tag_ids)
      raise ndb.Return(tags)
    
    qry = Post.query()
    output = qry.map(callback, limit=20)
    
    post01有tag01、tag02,post02有tag02、tag03。在这种情况下,tag02在同一批中被查询了两次,tag02算为2读还是1读

  • 是否有任何配置文件库来计算账单的读取次数,以便我自己能够解决上述问题

  • 提前感谢。

    您不会因为从memcache读取实体而收到账单,但您必须 请自行将实体放入缓存并从缓存中读取。 我认为,当您使用复杂的数据模型时,这可能会变得非常具有挑战性

    我正在运行一个只有几百个实体的小应用程序,当第一个 用户读取我将所有实体放入缓存中的数据,所有其他用户将获得 缓存中的数据

    对于我的其他应用程序,我使用Objectify(我使用Java),它支持放置实体
    在Memcache()中。可能存在类似于Python的东西。

    您所说的“它算作读取”是什么意思?从数据存储中读取还是从memcache中读取?我的意思是,如果从memcache中读取的实体被视为已读入的实体。我更新了一个问题来澄清。谢谢你的回答。python库实际上为您管理memcache和批处理,并且提供了一些配置。