私はajax-gameに取り組んでいます。要約:2人以上のゲーマー(ブラウザ)はjsonを通じてDBに保存される変数を変更します。すべてのゲーマーは、javascript-timer + jsonによって同期されます。定期的にその変数をDBから読み込みます。最後に作成したモデルの行をメモリに保存します
一般に、すべての変更は履歴としてDBに保存されますが、最近の変更がメモリに複製されるようにします。
問題は、私はDBの代わりに1つの変数をメモリに保存したいのです。
私はajax-gameに取り組んでいます。要約:2人以上のゲーマー(ブラウザ)はjsonを通じてDBに保存される変数を変更します。すべてのゲーマーは、javascript-timer + jsonによって同期されます。定期的にその変数をDBから読み込みます。最後に作成したモデルの行をメモリに保存します
一般に、すべての変更は履歴としてDBに保存されますが、最近の変更がメモリに複製されるようにします。
問題は、私はDBの代わりに1つの変数をメモリに保存したいのです。
あなたはキャッシュシステムを使用することができます。あなただけがグローバル変数を使用することができ、その場合には、Pythonの実行中のインスタンスを1つ、持っていない限り
http://docs.djangoproject.com/en/dev/topics/cache/#topics-cache
残念ながら、私はあなたがこれを行うことができます信じていません。ほとんどのWeb実装では、スレッド化されたサーバーがあるので、これはうまくいきません。レコードの最新コピーを取得するには、データベースからフェッチを行う必要があります。
非常に使用頻度の高い状況では、リクエストごとにデータベースにアクセスする際のパフォーマンスのオーバーヘッドを下げる手段として、memcached(またはこれに類するもの)を調べることをお勧めします。
キャッシュを使用するか、各リクエストで最新の変更をフェッチする必要があります(メモリ内のリクエスト間でオブジェクトを保持できないため)。
あなたの説明によれば、それはかなり頻繁にヒットしているように聞こえるので、キャッシュはおそらく行く方法です。
のようなものが適していますか?
これは非常に曖昧です。 「重複したメモリ」と「DBではなくメモリに格納されている」との間に競合があります。なぜあなたはこれを望んでいるのかを記述していません - それはパフォーマンスの問題ですか、それとも単純にそのアイテムを手に入れることができないのでしょうか? –
あなたはそれをやめるのを止めますか? – nosklo
ああ私はちょうどそれを行う方法を知らない。 主な理由は、もちろんパフォーマンスです。 – slatvick