2017-03-03 52 views
2

數據存儲按已讀實體的數量收費。數據存儲和MemCache條目讀取和定價

  1. 如果實體是從內存緩存讀取,它算作是一個實體的數據存儲pricing閱讀並得到了嘴?
  2. 如果一個實體在同一個批次中被多次讀取,它會計爲一次讀取還是多次讀取?

例如,經典的郵政和標籤的問題,我要查找的標籤名稱的職位名單,

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. 是否有任何配置文件庫獲取計數的帳單數量,所以我可以自己弄清楚上面的問題?

在此先感謝。

+0

你的意思是'它算作讀'嗎?從數據存儲讀取還是從memcache讀取? –

+0

我的意思是,如果從memcache讀取的實體計爲[數據存儲定價](https://cloud.google.com/appengine/pricing)中讀取的實體。我已經更新了問題清楚。 – YSC

回答

1

您不會爲從memcache中讀取實體而收取費用,但您只需自行執行 即可將實體放入緩存並從緩存中讀取。 我認爲當你使用複雜的數據模型時,這會變得非常具有挑戰性。

我正在運行一個只有幾百個實體的小應用程序,當第一個用戶讀取數據時,我將所有實體放在緩存中,其他用戶將從緩存中獲取 數據。

對於我的其他應用程序,我使用Objectify(我正在使用Java),它支持將實體 放入Memcache(https://github.com/objectify/objectify)中。也許有類似的Python存在。

+0

感謝您的回答。 python [ndb](https://cloud.google.com/appengine/docs/standard/python/ndb/cache)庫實際上爲您管理memcache和批處理,並且有一些配置可用。 – YSC