web-dev-qa-db-ja.com

sqliteと同じようにnosqlフラットファイルデータベースはありますか?

短い質問:sqliteとして利用できるnosqlフラットファイルデータベースはありますか?

説明:フラットファイルデータベースは、読み取り用に異なるプロセスで開いて、書き込み用に1つのプロセスを保持できます。厳密な一貫性が必要ない場合は、読み取りキャッシュに最適だと思います。ファイルまたはメモリブロックに1〜2秒書き込み、その後リーダーが更新されたデータを取得するとします。

したがって、pythonサーバー読み取りキャッシュとしてsqliteを使用することをほぼ選択します。しかし、まだ1つの問題があります。別の場所でSQLを書き直して、データテーブルの別のコピーを作成するのは好きではありません。 sqliteでは、バックエンドデータベースとして使用したPostgreSqlで行ったのと同じです。

他に選択肢はありますか?ありがとうございます!

32
davyzhang

多分shelve?これは基本的に、pythonオブジェクトを格納できるKey-Valueストアです。 http://docs.python.org/library/shelve.html

または、ファイルシステムを使用することもできますか?

11
knutin

BerkeleyDBは広く使用されている組み込みデータベースであり(元々はBSDに含まれているデータベースライブラリから派生したため、その名前が付けられています)、多くのユースケースで優れたパフォーマンス特性を備えています(キャッシュは頻繁に使用されます)が、いくつかの重要な制限があります。

Pythonで使用する場合は、おそらく 外部で保守されるpybsddb/bsddb3 library ではなく 非推奨のbsddb library Python 2.xに含まれています(3.xには含まれていません)。

現在、Oracleが所有していますが、オープンソースライセンスの下で利用できます。ライセンス条項に注意してください。現在のバージョンはGPLish(およびGPL互換)であるため、計画しているものと互換性があることを確認してください。

詳しくは:

7
Nicholas Knight

些細なことですが実行可能なものです。ストレージでバックアップされたキー値データ構造を探している場合は、pickled辞書を使用してください。必要に応じて、パフォーマンスを向上させるためにcPickleを使用してください。

0
Edmon