【问题标题】:How to effectively implement sessions in GAE?如何在 GAE 中有效地实现会话?
【发布时间】:2010-09-19 03:01:45
【问题描述】:

我想知道如何为我正在工作的 GAE 应用程序实施我自己的会话(更多是为了练习)......起初我正在考虑使用数据存储来存储会话数据。但是,每次需要将某些内容添加到会话“存储桶”中时,都需要将其保存到数据存储中。显然这很糟糕,因为我们想最小化我们的写入。然后我考虑使用 memcache ... 似乎是个好主意,但是由于 memcache 被 Google“通过内存压力驱逐”,我们面临着可能的会话损坏问题。那么这是否意味着我们只剩下以下选项:

  1. 将所有会话数据存储在 cookie 中
  2. 将所有会话数据写入数据存储和内存缓存,然后仅从内存缓存读取

有人有其他想法吗?

【问题讨论】:

    标签: google-app-engine session memcached


    【解决方案1】:

    更新 - 2011 年 3 月 21 日

    在回答此问题时,app-engine-patch 已停用gaeutilities offer worst featuresgae-sessions

    【讨论】:

      【解决方案2】:

      我建议在推出您自己的之前检查(并参与)这三个 appengine 会话的实现:

      您的选项看起来不错,但在它们之间进行选择可能取决于您的应用程序中会话数据的大小。

      【讨论】:

      【解决方案3】:

      如果您使用 web2py(版本 1.46 或更高版本),则 GAE 上默认启用会话。 这是通过脚手架模型顶部的以下三行 web2py 代码实现的:

      from gluon.contrib.gql import *
      db=GQLDB()
      session.connect(request,response,db=db)
      

      这是一个重要的示例操作:

      def index():
          session.c=session.c+1 if session.c else 1
          return dict(counter=session.c)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-17
        • 2013-09-14
        • 2017-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-27
        • 1970-01-01
        相关资源
        最近更新 更多