3

亲爱的大家

目前我正在使用 ndb API 来存储一些统计信息。不幸的是,这成为我成本的主要来源。我认为如果我只将它们保存到内存缓存中,它应该会便宜得多。数据是否因缓存过期而丢失无关紧要。

阅读手册后,我假设 _use_datastore 类变量可用于配置此行为:

class StaticModel(ndb.Model):
    _use_datastore = False

    userid = ndb.StringProperty()
    created_at = ndb.DateTimeProperty(auto_now_add=True)

我可以知道上述陈述是否是正确的解决方案吗?

干杯!

4

1 回答 1

5

我认为有三种方法可以实现您想要的。

首先是根据您的问题在 NDB 模型类上设置 _use_datastore = False。

第二种是在放置/获取/删除静态模型时传递 use_datastore=False。一个例子是:

model = StaticModel(userid="foo")
key = model.put(use_datastore=False)
n = key.get(use_datastore=False)

第三个选项是在 NDB 上下文中设置一个数据存储策略,它为任何 StaticModel 键返回 false。就像是:

context.set_datastore_policy(lambda key: True if key.kind() == 'StaticModel' else False)
于 2013-07-04T06:27:46.310 回答