自动NDB缓存如何工作?

LA_*_*LA_ 2 google-app-engine memcached quota app-engine-ndb

我的网站是电影目录.用户登录后,我会向他/她显示添加到我的数据库中的最新电影:

movies = Movies.query()
movies = movies.order(-Movies.added)
movie = movies.get(keys_only = True) // get_latest_movie_id
Run Code Online (Sandbox Code Playgroud)

是否缓存(电影每周都添加到数据库中,因此应该缓存)?如何验证(即什么是memcache密钥)?昨天大约有1000名用户访问了我的网站,我得到了

OverQuotaError:API调用datastore_v3.RunQuery()需要的配额多于可用配额.

Gre*_*reg 8

NDB只能通过密钥缓存.我怀疑在你的示例代码中movies是一个查询,而NDB不会缓存查询,你需要自己做.

  • 您发布的代码不会使用memcache.Movies.get_by_id(movie_id)会.关于缓存的文档中有一整页:https://developers.google.com/appengine/docs/python/ndb/cache (4认同)