Datastore 和 MemCache 条目读取和定价

Datastore and MemCache Entry Read and Pricing

数据存储按读取的实体数收费。

  1. 如果从内存缓存中读取一个实体,它是否算作在数据存储区中读取的实体 pricing 并被计费?
  2. 如果一个实体在同一批次被读取多次,算作一次读取还是多次读取?

例如,经典的 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次?

  1. 是否有任何配置文件库可以获取计费的阅读次数,以便我自己解决上述问题?

提前致谢。

您不会因从内存缓存中读取实体而付费,但您已经 自己关心将实体放入缓存并从缓存中读取。 我认为当您使用复杂的数据模型时,这会变得非常具有挑战性。

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

对于我的其他应用程序,我正在使用支持放置实体的 Objectify(我正在使用 Java) 在 Memcache (https://github.com/objectify/objectify) 中。也许存在 Python 的类似内容。