短い質問:sqliteとして利用できるnosqlフラットファイルデータベースはありますか?
説明:フラットファイルデータベースは、読み取り用に異なるプロセスで開いて、書き込み用に1つのプロセスを保持できます。厳密な一貫性が必要ない場合は、読み取りキャッシュに最適だと思います。ファイルまたはメモリブロックに1〜2秒書き込み、その後リーダーが更新されたデータを取得するとします。
したがって、pythonサーバー読み取りキャッシュとしてsqliteを使用することをほぼ選択します。しかし、まだ1つの問題があります。別の場所でSQLを書き直して、データテーブルの別のコピーを作成するのは好きではありません。 sqliteでは、バックエンドデータベースとして使用したPostgreSqlで行ったのと同じです。
他に選択肢はありますか?ありがとうございます!
多分shelve
?これは基本的に、pythonオブジェクトを格納できるKey-Valueストアです。 http://docs.python.org/library/shelve.html
または、ファイルシステムを使用することもできますか?
BerkeleyDBは広く使用されている組み込みデータベースであり(元々はBSDに含まれているデータベースライブラリから派生したため、その名前が付けられています)、多くのユースケースで優れたパフォーマンス特性を備えています(キャッシュは頻繁に使用されます)が、いくつかの重要な制限があります。
Pythonで使用する場合は、おそらく 外部で保守されるpybsddb/bsddb3
library ではなく 非推奨のbsddb
library Python 2.xに含まれています(3.xには含まれていません)。
現在、Oracleが所有していますが、オープンソースライセンスの下で利用できます。ライセンス条項に注意してください。現在のバージョンはGPLish(およびGPL互換)であるため、計画しているものと互換性があることを確認してください。
詳しくは:
些細なことですが実行可能なものです。ストレージでバックアップされたキー値データ構造を探している場合は、pickled辞書を使用してください。必要に応じて、パフォーマンスを向上させるためにcPickleを使用してください。