これを行うには(本当に)たくさんの方法があります
セッション状態の保存は、多くの Web ファーム/アプリの基本的な要件です。LINQ->SQL を使用してデータベースに格納するか、SAN でフラット ファイルを使用できます。ストレージ形式からネイティブ言語形式にシリアル化する方法があれば、(パフォーマンスの観点以外では) 本当に問題ではありません。
PHP では、Session ハンドラーはセッション テーブルに文字列としてマップされます。Python では、オブジェクトを文字列にマーシャリングし、それを格納することがあります。
RDBMSは同時アクセス用に設計されているため、ロックなどを心配する必要がないため、あらゆる形式でアクセスできるSQLバックエンドをお勧めします。また、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 の「HOW TO: Configure SQL Server to Store ASP.NET Session State」と呼ばれるこの HOWTO が役立つ場合があります。
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"
/>
アプリのニーズを確認せずに、セッション状態が必要かどうかを判断することは不可能です。しかし、結局のところ、状態は状態であり、その状態へのアクセスの要件 (読み取り負荷が高い、書き込み負荷が高い、大きい、小さいなど) によって、それをどのように、どの形式で格納するかが決まります。
ハッシュマップのようなオブジェクトから SQL テーブルへの ORM マッピング、または次のようなハッシュマップのシリアル化のいずれかをお勧めします。
session = load_from_sql(session_id)
someval = session['var']
値を文字列またはネイティブ オブジェクトとして保持するかどうかは、選択した ORM や、言語からの容易さなどによって異なります。データベースのフットプリントだけでなく、パフォーマンスも要因の 1 つです。単純な変数の文字列を格納し、オンデマンドでアンマーシャリングする方が簡単な場合があります。JSON 型を保存してからネイティブに変換できます。
考慮すべきことがたくさん...
ORM->session_object であれ、ハッシュテーブルにマッピングされた一連のタプルであれ、SQL はおそらく最も単純です。
幸運を