5

主な要件:

  1. クラスタリングとレプリケーションのサポートにより、クラウドでの簡単かつ低コストの展開。
  2. オブジェクトの直接サポート。式から ORM を取り出します。
  3. Python クライアント。
  4. 重い書き込みと中程度の書き込みを読み取ります。
  5. 適度な速度が必要ですが、株式取引のようなものはありません。
4

1 に答える 1

4

この記事に基づいて

http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

ほとんどの要件を満たしているように見えるので、最終的にデータベースの選択肢をRedisMongoDBに絞り込みました。要件に最も適したものを選択する方法を説明します。

  1. クラスタリングとレプリケーションのサポート - Redis は、クラスタリングまたはレプリケーションをほとんどサポートしていません。したがって、メモリはデータに比例して増加します。クラウドベースのインフラストラクチャを使用しているため、その種のメモリをサポートするにはかなりのコストがかかる可能性があります. 一方、MongoDB はレプリケーションとクラスタリングをサポートしています。Redis 0 MongoDB 1.
  2. オブジェクトの直接サポート - ORM なし: ここでは明らかに、Redis が memcached のようなモデルをサポートしているため、勝者です。ただし、MongoDB は「ストレージのようなオブジェクト」と JSON の直接サポートも提供します。したがって、速度要件を犠牲にすることができれば、MongoDB はこのニーズを満たします。Redis 1 MongoDB 1.
  3. Python クライアント - 両方のデータベースに堅牢な Python クライアントがあります。Redis 1 MongoDB 1.
  4. 重い書き込みと中程度の書き込みを読み取ります-これらの両方のデータベースに対して読み取りパフォーマンスに明確な違いがあるとは思いません。しかし、経験だけが言うでしょう。当分の間 - 私は両方に等しい得点を与えています。Redis 1 MongoDB 1.
  5. スピードのような株式取引は必要ありません - 明らかに、MongoDB はここで優位に立っています。Redis 0 MongoDB 1.

合計スコア: Redis 3 MongoDB 5.

今のところ、MongoDB を使用します。追加のボーナスとして、MongoDB には地理空間クエリもサポートされています。したがって、何らかの理由で位置情報に基づくクエリをアプリに追加する必要がある場合、MongoDB でその移行を行うのはそれほど難しくありません。物事がどのように計画されるか見てみましょう。いつか戻ってきて、この答えを再訪したいと思っています:)。私が見逃したものは何でも自由に追加してください。

于 2012-10-10T05:29:04.670 に答える