2012-01-20 4 views
4

私はウェブ開発にはかなり新しいです。私はFlask、Sqlalchemy、Postgresqlで作業しています。キャッシングまたはクッキーベースのセッションを使用するサーバーサイドセッションに関する疑問

私の知る限り理解しているように、すべての新しい要求は、プログラムの新しいスレッドのようなものです。新しいsqlalchemyセッションが作成され、db操作を管理し、応答を返します。その後、新しいスレッドも閉じられ、接続はプールに戻されます。

私は、ユーザーがログインしたユーザのORMオブジェクト内のすべてのユーザーデータを取得します。私はクッキーを使用するフラスコセッション変数に保存しました。今私はまた、ユーザーセッション全体のスパンのための他のユーザー関連のデータを保存したいと思います。

1. Unnecessary data travel back and forth. 
2. data can be read easily. 

私の疑問は有効ですか?2つの理由から、すべてのデータをクッキーに保存することに疑念があります。

は、だから私の他の質問は以下のとおりです。

  1. アムI右の時期尚早な最適化の罠に取得せずに、各要求で、いくつかのセッション全体のデータを避けるためにいくつかのレベルで? または 必要が生じたときにこれについて心配する必要がありますか?今は作業中のアプリケーションの作成に集中していますか?クッキーベースのセッションに

  2. 代替Redisのまたはメモリキャッシュを使用して行うことができ、サーバ側セッションです。ビーカーのライブラリはどこに入っていますか?それはスタンドアロンのものかredisまたはmemcacheと一緒に使用するのですか?

+0

ビーカーはmemcached用のPythonラッパーです。サーバー側のセッションもサポートしていますので、ビーカーを使用してください。 –

答えて

1

ほとんどのブラウザでは、最大4096バイトのCookieをサポート。 (Source

以上を保存する場合は、RedisまたはMemcacheのようなサーバー側セッションバックエンドを使用する必要があります。 FlaskのデフォルトのCookieセッションインタフェースをRedisまたはMemcacheインタフェースに置き換えるのはとても簡単です。 Arminによるgreat snippet for redisがあります。あなたがmemcacheをprefereしている場合、同じmemcacheメソッドでスニペットのredisものを置き換えることができます。 ;)

関連する問題