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

时间:2013-07-03 23:19:13

标签: google-app-engine google-cloud-datastore app-engine-ndb

亲爱的所有

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

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

class StaticModel(ndb.Model):
    _use_datastore = False

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

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

干杯!

1 个答案:

答案 0 :(得分: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)

第三个选项是在NDB上下文中设置数据存储策略,该策略对任何StaticModel键都返回false。类似的东西:

context.set_datastore_policy(lambda key: True if key.kind() == 'StaticModel' else False)