如何在GAE中有效实施会话?

fue*_*sjr 12 session google-app-engine memcached

对于我正在使用的GAE应用程序,我想知道实现我自己的会话(更多用于练习而不是其他任何事情)......起初我正在考虑使用数据存储来存储会话数据.但是,每次需要将某些内容添加到会话"存储桶"时,都需要保存到数据存储区.显然这很糟糕,因为我们希望最小化写入.然后我想到使用memcache ......似乎是一个好主意,但后来我们面临着由于memcache被"内存压力驱逐"而导致会话损坏的问题.那么这是否意味着我们只剩下以下选项:

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

有没有其他想法?

Ces*_*sar 5

更新 - 2011年3月21日

在此答案时,app-engine-patch已停止,并且gaeutilities 提供的功能gae-sessions 更糟糕.


Ale*_*kov 3

我建议在推出您自己的应用程序引擎会话之前检查(并贡献)这三种应用程序引擎会话实现:

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

  • 另一种需要考虑的方法是:[gae-sessions](http://wiki.github.com/dound/gae-sessions) 是最快、最简单的实现。可用库的比较如下:http://wiki.github.com/dound/gae-sessions/comparison-with-alternative-libraries (2认同)