Python で使用するキー:値ストアはどれですか?[閉まっている]
-
06-07-2019 - |
質問
そこで私は、Python で使用するさまざまな key:value (value は厳密に単一の値か、場合によってはオブジェクト) ストアを調べており、いくつかの有望なものを見つけました。現在評価段階にあるため、具体的な要件はありません。私は、何が良いのか、何が悪いのか、これらのことがうまく処理できる、またはうまく処理できない例外的なケースは何なのか、などを探しています。すでに試している方もいらっしゃると思いますので、発見や問題点などをぜひお聞かせください。Python を使用したさまざまな key:value ストア。私は主に次のことを検討しています。
memcached - http://www.danga.com/memcached/ Pythonクライアント: http://pypi.python.org/pypi/python-memcached/1.40 http://www.tummy.com/Community/software/python-memcached/
カウチDB - http://couchdb.apache.org/ Pythonクライアント: http://code.google.com/p/couchdb-python/
東京タイラント - http://1978th.net/tokyotyrant/ Pythonクライアント: http://code.google.com/p/pytyrant/
ライトクラウド - http://opensource.plurk.com/LightCloud/ Tokyo Tyrant をベースに Python で書かれています
レディス - http://redis.io/ Pythonクライアント: http://pypi.python.org/pypi/txredis/0.1.1
MemcacheDB - http://memcachedb.org/
そこで、数値キーと「短いテキスト文字列」の値を生成する単純なカウントを使用して、ベンチマーク (キーを挿入して読み取るだけ) を開始しました。
memcached:CentOS 5.3/python-2.4.3-24.el5_3.6、libevent 1.4.12 安定版、デフォルト設定の memcached 1.4.2、1 GB メモリ、1 秒あたり 14,000 挿入、読み取りに 16,000 秒。実際の最適化は必要ありません。
memcachedb は、1 秒あたり 17,000 ~ 23,000 回の挿入、1 秒あたり 44,000 ~ 64,000 回の読み取りを実行すると主張しています。
他の人たちがどのように速度を上げているのかも気になります。
解決
それは主にニーズに依存します。
データベースの評価に関する警告を読むそれらを評価する方法を理解します。
他のヒント
shelve(ファイル内のdictonarisの保存/標準Pythonモジュール)
ZODB-永続オブジェクトデータベース(Pythonオブジェクトデータベース、SQLなし)
その他の永続化ツール: http://wiki.python.org/moin/PersistenceTools
私の5セント:
テラバイトサイズのデータや大規模な書き込みパフォーマンスを備えた分散システムが必要ですか?
そうですね、大きな key:value/BigTable/Dynamo タイプのものの 1 つが必要です。それは、Cassandra、Tokyo Tyrant、Redis などによって行われます。複数のデータベースに書き込みできるように、クライアント ライブラリがシャーディングをサポートしていることを確認する必要があります。ここでどれを使用するかは、必要と思われるデータを使用してテストした後でのみ決定できます。
Python 以外のシステム/言語からデータにアクセスできるようにする必要がありますか?
これらのデータベースにはデータの構造がまったくないため、他の言語/クライアントからアクセスできるかどうかは、データベースに何を保存するかによって異なります。ただし、必要な場合は、データを JSON ドキュメントとして保存するため、相互運用性が得られる CouchDB が良い選択です。ただし、実際に大規模なデータやシャーディングに対して CouchDB がどの程度優れているのかは不明です。
Python 以外の言語との相互運用性や分散マルチサーバー ストレージは必要ありませんか?
ZODBを使用します。
AmazonのSimpleDBはどうですか?
PythonのAmazon Webサービスとのインターフェース用にbotoと呼ばれるオープンソースのPythonライブラリがあります。