Edited at

Memcached, MongoDB, Redis, DynamoDB 簡易比較

More than 1 year has passed since last update.


NoSQLの特徴

一般に”Not only SQL”と解釈される。SQLを否定するノーSQLの意味ではない。

固定されたスキーマに縛られない。

水平スケーラビリティが確保しやすい事が多いこと、トランザクションを利用できないものが多い。


NoSQL比較表

単純比較している情報が見つからなかったため情報を集めて作成。

(そのため、謝りがあればご指摘いただければ幸いです)

Memcached
MongoDB
Redis
Amazon DynamoDB

データモデル
Key Value
ドキュメント指向
Key Value
Key Value

種別
揮発性
永続性
揮発性&永続性 ※1
永続性

レプリケーション
なし
対応
対応
自動対応

シャーディング
なし
対応
対応
自動対応

マルチコア
対応
MongoDB 2系:非対応/3系:対応
非対応 ※1
-

揮発性&永続性 ※1

ディスクに書き込み,永続化させる機能も持ち合わせている。

非対応 ※1

1スレッドでループ処理を行うので、マルチコアのサーバの場合に全てのCPUリソースを使い切らない。


主な特徴


Memcached

キャッシュストレージとしての用途からGETやSET等のシンプルな操作が可能。

LRU(Least Recently Used)順に古いデータを自動削除する。

ディスクI/Oは一切行わない。

データベースやOSの再起動でデータが消去される。


MongoDB

32bitでは2.5GBの制限がある。

(もろもろ情報を追記予定)


Redis

コマンドで削除するか,timeoutを設定しない限りは削除されない。(古いデータを自動削除されない。)

ノードを追加してデータを再配置し、スケールアウトすることができる


Amazon DynamoDB

テーブル作成後のインデックスの変更が行えない。

トランザクションは無いが、代替で対応している人もいる。

http://www.slideshare.net/itoyusaku/dynamodb