有很多(真的)方法可以做到这一点
存储会话状态是许多网络农场/应用程序的基本要求。您可以使用 LINQ->SQL 将其存储在数据库中,也可以使用 SAN 上的平面文件。只要您有某种方法可以从存储格式序列化为本地语言格式,这真的没关系(除了从性能角度来看)。
在 PHP 中,会话处理程序以字符串的形式映射到会话表。在 Python 中,您可能会将一个对象编组为一个字符串并存储它。
我会推荐以任何形式访问的 SQL 后端,因为 RDBMS 是为并发访问而设计的,因此您无需担心锁定等问题。它的扩展性和RDBMS 一样好
你可以使用像 SQL Alchemy 这样的东西
Session = sqlalchemy.orm.sessionmaker() session = Session()
来自
http://www.darrellhawley.com/2009/01/sql-alchemy-orm-basics.html
或者在这里
http://idunno.org/articles/277.aspx
或者这个来自 Microsoft 的 HOWTO 称为“如何:配置 SQL Server 以存储 ASP.NET 会话状态”可能会有所帮助
http://support.microsoft.com/kb/317604
哪个提供
<sessionState
mode="SQLServer"
sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>"
cookieless="false"
timeout="20"
/>
如果不查看您的应用程序需求,则无法确定是否需要会话状态。但归根结底,状态就是状态,访问该状态的要求(读取繁重、写入繁重、大、小等等)决定了您如何存储它以及以什么格式存储它。
我会推荐在类似 hashmap 的对象到 SQL 表之间的 ORM 映射或 hashmap 的序列化,这样
session = load_from_sql(session_id)
someval = session['var']
将值保存为字符串或原生对象取决于您选择的 ORM、您的语言是否容易等等。性能也是一个因素,以及数据库占用空间。您可能会发现存储简单变量字符串和按需解组更简单。您可以存储 JSON 类型,然后将它们转换为本机。
很多要考虑...
SQL 可能是最简单的,无论是 ORM->session_object 还是映射到哈希表的一组元组。
祝你好运