私はアルゴリズムのために非常に頻繁に照会する必要がある〜200GBの非常に大きな辞書を持っています。速い結果を得るために、私はそれを可能な限りメモリに入れたいと思います。幸いにも私は500GBのRAMを持っているからです。非常に大きな辞書をPythonでメモリにロードしたままにするには?
しかし私の主な問題は、新しいプロセスを作成するたびにコードを繰り返し実行するのではなく、メモリ内に一度だけロードしてから別のプロセスに同じ辞書を照会させたいということです。
スクリプト1:
# Load dictionary in memory
def load(data_dir):
dictionary = load_from_dir(data_dir) ...
スクリプト2:
# Connect to loaded dictionary (already put in memory by script 1)
def use_dictionary(my_query):
query_loaded_dictionary(my_query)
これを達成するための最良の方法は何ですか
だから、私はこのような何かをしたいと思いますか?私は残りのAPIを考慮しましたが、RESTリクエストを超えると、最初にメモリに辞書を置くことによって得られるすべての速度が低下するかどうか疑問に思います。
提案がありますか?
多分redisが助けになるようなものを使用してください。 –
はい、赤字も良い考えです。私はPythonでこれを行う方法があるのだろうかと思っていた。以前はmongodbを試しましたが、最新のwiredtigerバージョンのmongodbには、メモリ内のすべてのデータをプリロードするオプションがありません。問題は私がrootのパスワードを持っていないことです、私はあまりにも多くのソフトウェアをインストールしたくありませんでした。しかし、私にレディスしよう。 –
NOSQLデータベースを再作成しようとしていますか?既存のものに頼らないのはなぜですか? –