2011-08-22 6 views
6

私の現在のプロジェクトでは、Memcacheを使用してキーと値のペアを保存していますが、通信は私のプロセスとMemcacheとの間でソケットを介して行われるため、大量のキーと値のペアを格納する必要があるため、Memcacheを使用しました。しかし、私は自分のプロセスでグローバルなデータ構造として辞書を保存したいと思っています。それはいいことですか?辞書はプロセスのアドレス空間に格納されるためです。提案.... memcachedのを使用するmemcacheとpython辞書の相違点

答えて

8

通常の理由は、あなたが両方持つデータの目標とし、複数のマシン間でキャッシュを配布したいと利用可能なすべてのマシン上のを、また、利用しているしてくださいすべてのマシンのストレージこれらの要件があなたに当てはまらず、キャッシュされたデータが1台のマシン上に必要な場合、memcachedはそれほど多くのことを提供しません。その場合は、辞書をローカルプロセスに移動することをお勧めします。

1

データがそれほど大きくない場合は、cPickle.dumpまたはmarshal.dumpを使用してpython辞書をファイルにダンプし、cPickle.loadまたはmarshal.loadを使用してファイルからリロードし、心配する必要がある場合ディスクスペースについては、ファイルの読み書き中にbz2またはgzip圧縮/解凍を使用することができます。

6

memcachedの "about"ページにa thorough answerと書きました。私は写真やすべてを描きました。

要約:複数のプロセスがある場合、辞書はあなたを助けません。あなたが複数のプロセス/コンピュータを持っているなら、あなたはたくさんのお金を節約し、より大きなものを得る素晴らしい方法で再利用できるたくさんのメモリを燃やすでしょう。