12

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

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

有人有其他想法吗?

4

3 回答 3

5

更新 - 2011 年 3 月 21 日

在给出这个答案时,app-engine-patch 已停产,并且gaeutilities 提供的功能gae-sessions最差。

于 2011-03-21T06:12:56.407 回答
3

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

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

于 2008-10-24T23:11:53.660 回答
0

如果您使用 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)
于 2008-11-03T18:12:03.063 回答