Berkeley DBを使用して度数分布表(つまり、文字列キーと整数値を持つハッシュテーブル)を保存しようとしています。テーブルはPythonから書き込まれ、更新され、読み取られます。だから私は現在bsddb3を試しています。これは、文字列値のみをサポートしているように見えることを除いて、私が望むほとんどのことを実行するように見えますか?
私が正しく理解していれば、BerkeleyDBはあらゆる種類のバイナリキーと値をサポートしています。bsddb3を使用してBerkeleyDBに生の長整数を効率的に渡す方法はありますか?値を文字列との間で変換できることはわかっています。これはおそらく私が最終的に行うことですが、より効率的な方法はありますか?つまり、「生の」整数を格納することによって?
背景:私は現在、大きな(数百万とまではいかなくても数千万のキー)度数分布表を使用しています。これは現在Pythonディクショナリを使用して実装されていますが、仮想メモリへのスワップを開始するとスクリプトを中止します。はい、Redisを見ましたが、これによりデータベース全体がメモリに保存されます。だから私はバークレーDBを試してみようとしています。短期間のメモリ内キャッシュを使用することで、作成効率を向上させることができるはずです。つまり、メモリ内のPythonディクショナリを作成し、これを定期的にマスターBerkeleyDB頻度テーブルに追加します。