【问题标题】:Using namespaces with the Datastore or Using namespaces with the Memcache将命名空间与 Datastore 一起使用或将命名空间与 Memcache 一起使用
【发布时间】:2014-10-28 18:40:48
【问题描述】:

我真的在文档中发现这些选项令人困惑,memcache 会使用祖先查询吗?我可以同时使用两者吗?如何使用?

【问题讨论】:

    标签: python google-app-engine namespaces memcached


    【解决方案1】:

    不,Memcache 不使用祖先查询,甚至不使用“查询”本身。虽然 Memcache 和 Datastore 本质上都是键值存储,但 Datastore 支持查询(使用索引)和事务。 Datastore 用于您的持久数据存储。

    另一方面,

    Memcache 仅提供 putget 操作,具有高性能,但不保证对象的可用性。 (Memcache 还提供原子计数器和 put-if-untouched 功能)。因为它是一个缓存,所以您的数据可能随时被驱逐。因此,您应该将 memcache 视为提高应用程序性能或效率的一种方式。

    此外,命名空间和祖先查询是不相关的。命名空间只是一种帮助您对数据进行分区的方法(可能对于多租户应用程序)。 Datastore 和 Memcache 都支持命名空间。

    祖先路径定义了一致性的范围 - 在祖先查询事务中。要了解祖先的目的,您应该阅读Entity Groups 的概念。

    【讨论】:

    • 我一直在使用 ndb 而不是 db,我开始怀疑这是不是一个好主意
    • 是一个帮助谢谢,我对同时使用 db 和 ndb 感到很困惑,但链接很有用
    【解决方案2】:

    我不确定您对“祖先查询”的要求是什么,但对于命名空间,在 Python 中,数据存储区和内存缓存 API 都使用 namespace_manager#get_namespace 进行查找/放置/...尽管在内存缓存 API 中您可以覆盖它通过在请求中显式传递命名空间(参见:https://cloud.google.com/appengine/docs/python/memcache/clientclass

    【讨论】:

      猜你喜欢
      • 2012-01-11
      • 2016-09-14
      • 2021-08-26
      • 1970-01-01
      • 2014-10-13
      • 1970-01-01
      • 2016-04-23
      • 2019-01-17
      • 1970-01-01
      相关资源
      最近更新 更多