数据存储:使用ndb API时是否可以只保存到memcache?

Jam*_*Gan 3 google-app-engine app-engine-ndb google-cloud-datastore

亲爱的大家

目前我正在使用ndb API来存储一些统计信息.不幸的是,这成了我费用的主要来源.我认为如果我只将它们保存到memcache,它应该便宜得多.数据是否因缓存过期而丢失并不重要.

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

class StaticModel(ndb.Model):
    _use_datastore = False

    userid = ndb.StringProperty()
    created_at = ndb.DateTimeProperty(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)

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

干杯!

小智 5

我认为有三种方法可以达到你想要的效果.

第一种是根据您的问题在NDB模型类上设置_use_datastore = False.

第二种方法是每当你输入/获取/删除一个StaticModel时传递use_datastore = False.一个例子是:

model = StaticModel(userid="foo")
key = model.put(use_datastore=False)
n = key.get(use_datastore=False)
Run Code Online (Sandbox Code Playgroud)

第三种选择是在NDB上下文中设置数据存储策略,该策略对任何StaticModel键都返回false.就像是:

context.set_datastore_policy(lambda key: True if key.kind() == 'StaticModel' else False)
Run Code Online (Sandbox Code Playgroud)