4

次の操作を集中的に実行する必要があるとします。
put(key, value)
ここで、valueは<列名、列値>のマップです。
私は長い間NoSQLを知りませんでした。私が知っているのは、Cassandra insert(Bigtableペーパーで定義されたAPIに準拠)とRedisの「HSET」コマンドの両方でそれができるということです。しかし、両方の長所と短所は何ですか?そこにパフォーマンスとスケーラビリティの違いはありますか?

編集 :

私の要件はIMサーバーのようなものです---セッションデータを保存する必要があり、低遅延を簡単に達成できるように、それらすべてをメモリに保存する必要があります。セッションは最大2時間続きます。考慮すべき一貫性の要件はまだありません。また、ディスクはフェイルオーバー専用です。データの損失はひどいものではありません。必要なのはレイテンシーを下げることだけです。1秒あたりの操作数---多いほど良いです。

4

1 に答える 1

14

redisとcassandraの両方をKeyValueストアとして使用できます。違いは、速度、規模、信頼性にあります。

Redisは、データセット全体がメモリに存在する単一のサーバーとして最適に機能します。

Cassandraは、メモリに収まらないデータセットと単一のマシンに収まらないデータセットを処理できます。複数のマシンに分散することの一部として、cassandraははるかに信頼性があります。Cassandraは、マシンの障害を処理し、マシンを再構築し、必要に応じてクラスターに容量を追加できます。

redisは完全にメモリ内にあり、読み取り/書き込みは単一のマシンによって処理されるため(通常、単一のcassandra書き込みは複数のマシンと通信します)、redisの方が高速である可能性があります。

主な目標が速度であり、データを確実に保存する必要がなく、データセットがメモリに収まる場合は、redisの方がおそらく優れたソリューションです。

于 2012-09-29T14:31:31.870 に答える