特徴
Couchbase vs. Redis + MongoDBの主な特徴
- 含まれるもの
- 内蔵キャッシュ
- JSONの柔軟性
- 自動モバイル同期とピアツーピア同期
- マスターレス・アーキテクチャ
- フルSQLクエリ
- マルチマスター地理レプリケーション
- アナリティクス
- 自動シャーディング/パーティショニング
- データベース・ロジック
- 内蔵フルテキスト検索
- データ構造(キュー、セットなど)
- 多次元スケーリング
- Couchbase
- イベント、UDF
- Redis + MongoDB
- Redisのみ
- RedisJSONモジュールが必要
- MongoDBのみ
- RedisはLuaのみ
お客様
成功事例:MongoDBとRedisを超えるCouchbase
-
「半分以下のサーバー台数で、パフォーマンスを向上させ、拡張性の高いアーキテクチャを得ることができます。
アミール・イシュ・シャローム Viber オペレーションズ・ディレクター15 10億コール・メッセージ・イベント/日60% 総サーバーの削減 -
「最も重要なのは、多次元的なスケーリングです。特定のユースケースのために数個のノードを持つことは非常に強力です。"
ジェイ・ドゥライサミー エクイファックス、USISエンジニアリング・リーダー、SVP300+ 40分で100万文書1.5 絶えず変化する10億の記録 -
「他のどのソリューションも、Couchbaseの広範なエンタープライズ機能には及ばなかった。
アビラム・アグモン CTO, マッカビ・ヘルスケア2.3 単一のアプリで230万人の顧客0 毎日何千もの接続のダウンタイム
コード・スニペット
CouchbaseのSQL++と単一のAPIは、Redis/MongoDBよりも優れている。
// scope/collection allow for more flexible data organization
const bucket = cluster.bucket('accounts-receivable');
const scope = bucket.scope('tenant1');
const collection = scope.collection('invoices');
const result = await collection.get('key');
// Redis lacks scope and collection capability
const redisClient = redis.createClient({ ... });
redisClient.connect();
const value = await redisClient.get('key');
/* equivalent to the Mongo example */
SELECT SUM(value * volume) AS val, symbol
FROM db.stocks
WHERE symbol IN ( "AAPL", "GOOG" ) AND value > 0
GROUP BY symbol
ORDER BY val DESC, symbol ASC
// equivalent to the SQL++ example
db.stocks.aggregate([
{ "$match": {
"$and": [
{"symbol": {
"$in": [
"AAPL",
"GOOG"]}},
{ "value": {
"$gt": 0 }}]}},
{ "$group": {
"_id": {
"symbol": "$symbol" },
"sum(value * volume)": {
"$sum": {
"$multiply": [
"$value",
"$volume"]}}}},
{ "$project": {
"_id": 0,
"sum(value * volume)": "$sum(value * volume)",
"symbol": "$_id.symbol"}}
{ "$sort": {
"sum(value * volume)": -1,
"symbol": 1 }}]})
// Redis lacks a complex query language like SQL