2011-08-05 6 views
3

のカスタムPythonオブジェクトのコレクションとしてが存在するWebアプリケーション用のカスタムデータモデルを作成したいと考えています。 Webアプリケーションは、これらのオブジェクトのデータを操作してユーザーの要求に対してメソッドを実行し、要求スレッドが終了するとオブジェクトをメモリ内に残すことができます。Pythonでの永続メモリ内記憶

モデルオブジェクトには、自分自身をディスクに書き込むメソッドがあります(これはまだどうやって行うのかわかりませんが、私がここで興味を持っているわけではありません)。理想的には、サーバーが稼働している限り、それらはメモリ内に保持されます。

複数のユーザーが同時にオブジェクトのデータを操作している場合、モデルへのアクセスはセッションで管理する必要がありますが、この発生は比較的まれです。

Webアプリケーションをリセットしてもオブジェクトを維持する必要があるため、Webアプリケーションでオブジェクトを初期化するオプションはありません。

この種のモデルを簡単に設定できるサードパーティのコンポーネントはありますか?この道を進むためのアドバイスはありますか? Pythonやその他の方法で通信する独立したプロセスをプログラミングする経験はあまりないので、助けてください。

私のサーバーはLinuxになり、WebアプリケーションのフレームワークとしてPyramidを使用する予定です。事前に

おかげで、 ウィル

答えて

2

は、私は、これは主にあなたがあなた自身のORMを構築するように見えるものに置きたいどのくらいの仕事に依存だと思います。

あなたがあなたのモデルの複雑さに応じて、あなたのPythonオブジェクトをシリアライズする作業を感じている場合は、Redisにショットを与えることができます。

Redisは、キー値モデルに基づいた非リレーショナルデータベースです。すべてのデータはメモリに保存され、定期的に(頻度は書き込み回数に依存し、カスタマイズ可能です)、ディスクにダンプされます。それはまた、ピックアップして使用するのもかなり簡単です。

redisの周りには、Python用のラッパーがあります:redis_pyです。

もちろん、レディスだけでなく、東京タイランなどの類似のものを見ることもできます。