12

Django 1.4は、djangoセッションを維持するためのいくつかの方法を提供します。

使用に関する私の見解:

i)キャッシュのみ:好ましくありません。ユーザーセッションがmemcacheから削除される可能性があります。

ii)Db +キャッシュ(cached_db):好ましい、シンプルで安全なソリューション。

iii)署名されたCookieセッション:望ましい、データベースヒットなし。

セッションデータが非常に小さい、つまりCookieに保存しても問題ないと仮定します。データベース+memcache駆動のセッションエンジンよりも署名されたCookieを使用することのパフォーマンス上の利点はありますか?N個の同時新規ユーザーについては、N個のデータベースヒットの順序が保存されます。これにより、データベースサーバーが単位時間あたりに処理する必要のあるクエリの総数が減ります。

更新:redisまたはaerospikeは、djangoの非常に堅牢で高スループットのセッションバックエンドであることがわかりました。redisセッションバックエンドとして使用しています

4

1 に答える 1

5

N個の同時クエリを処理できる必要があります(N-同時新規ユーザー)。

非常に大規模な場合にのみ違いがわかります。あなたは悲観的である必要があり(サーバーがダウンしている、バックアップが悪い、amazon bancrupcy)、データベースはラッシュアワーにすべてのユーザーを処理できる必要があります。

  • Cookieセッションを使用する10000000ユーザーは、0ドルの追加料金が発生します。これは、iframeとモバイルの問題です。
  • キャッシュセッションを使用する10,000000人のユーザーは、1日あたり数百ドルまたは数百ドル未満の費用がかかります。再起動するとセッションが失われます。
  • cache_dbセッションの10,000000ユーザーは、1日あたり数千ドルの費用がかかります(一度に1 000 000ヒットを処理できる永続ストレージ、ユーザーの10%)

memcachedサービスのクラスターに切り替える可能性のあるredisバックエンド(ディスクへの定期的な保存)を使用しています。

http://www.icis.com/blogs/icis-chemicals-confidential/files/2011/10/19/goodcheapfast.jpg

于 2012-08-27T14:24:59.643 に答える