2

高性能が必要なデータをシリアル化する必要があります。分離されたスレッドは毎秒それにアクセスし、データをメモリにロードする必要があります。ユーザーセッション(id、sessid、ログイン日)に関する辞書のようなエントリが約1000〜10000あります。ログイン時間には時間がかかるため、一部のデータは頻繁に更新されます。

これらのデータは、PythonサーバーとDjangoアプリケーションの間で共有されます。私はピクルスまたはそのより速いバージョンのcPickleを使うと思います。マーシャルも見つけました。

それを行うための最良の方法は何ですか?cPickleは十分に効率的ですか?それとも元帥?

編集:非常に重要なことはアクセス時間です。リアルタイムのWebSocketサーバーになるので、必要な遅延は非常に少なくなります。1秒に1回cPickleデータにアクセスする方が速いですか、それともRedisのようなデータベースに接続する方が速いですか?

4

3 に答える 3

4

より良いアプローチは、メモリ内キャッシュ (必要が単純な場合は memcached) を使用するか、redis のようなもう少し機能セットを備えたものを使用することです。

于 2012-04-08T18:53:40.307 に答える
4

rediscomplex をシリアル化する必要がpython objectあるため、redisすべてのデータを単純なキーと単純な値として表現しない限り、この問題は解決しません。redisはデシリアライゼーション ソリューションではなく、単なる文字列のデータ ストアです。いずれにせよ、redis遅いオプションの1つです: https://charlesleifer.com/blog/completely-un-scientific-benchmarks-of-some-embedded-databases-with-python/

于 2015-06-02T16:21:53.530 に答える
0

メモリ内の実際のデータベースを使用します。pickle、cPickle、marshal などは使用しないでください。

于 2012-04-08T19:03:27.157 に答える