CouchbaseはこんなDB
CouchDB、Membase、Memcachedの3つを統合したプロダクトで、「開発者がリラックスして、カウチソファに座っているようにデータベースの設計・構築・運用ができるように」というCouchDBの思想を引き継ぎつつ、 Simple (シンプル) Fast (高速性) Elastic (柔軟) をコンセプトにして作られている。
最小構成でいいのなら
パッケージ落として、インストールするだけで完了!! mac brew cask install couchbase-server-community
RHEL/CentOS rpm --install couchbase-server-version.rpm
Debian/Ubuntu dpkg -i couchbase-server-version.deb
minimumな設定でいいなら、これだけでもう動く。
ドキュメント指向データベース
Key-Value OR ドキュメントストア Couchbaseはドキュメントストアとして動作する。 Valueはシンプルなデータ型のデータでも連想配列、JSON形式などでもOK。 ドキュメントをそのまま保存できるので、JSON形式で保存するのが推奨。
スキーマフリー 予めCouchbaseでスキーマ定義をする必要はない。 RDBSのようなDB migrationがいらない。 すべてプログラム側で管理できる。 ドキュメント毎に異なるスキーマの設定もできる。 なのに、インデックスを設定できる
SQL規格に準拠したN1QL例1. 右記のデータに対して下記のクエリで リクエストする
{ "results": [ { "tutorial": { "age": 46, "children": [ { "age": 17, "fname": "Aiden", "gender": "m" }, { "age": 2, "fname": "Bill", "gender": "f" } ], "email": "[email protected]", "fname": "Dave", "hobbies": [ "golf", "surfing" ], "lname": "Smith", "relation": "friend", "title": "Mr.", "type": "contact" } } ] }
SELECT children[0].fname AS cname FROM tutorial WHERE fname='Dave'
結果1.{ "results": [ { "cname": "Aiden" } ] }
キャッシュ機構よく使われるものは、メモリに乗りそうじゃないものがディスクに保存される設計。 DBの負荷を下げるためのキャッシュを用意する必要がなくなる。
マネージドキャッシュ
ディスク
Doc1
Doc1Doc2
Doc3
Doc3
ディスクキュー
レプリケーション キュー
他ノードとのレプリケーションは メモリ to メモリ
APP
Couchbaseの全体像Couchbase Server 高速、柔軟でハイパフォーマンスなデータベース Couchbase Lite デバイス上で動く簡易版DB。開発言語と同じ言語で作られている Couchbase Sync Gateway Couchbase LiteとCochbase ServerをつなぐGateway同期時にデータが競合した場合の解決なども行ってくれる
http://www.couchbase.com/ https://forums.couchbase.com/
続きはWEBで