CARATTERISTICHE
Caratteristiche principali di Couchbase rispetto a Redis + MongoDB
- Cosa è incluso
- Cache integrata
- Flessibilità JSON
- Sincronizzazione mobile automatica e sincronizzazione peer-to-peer
- Architettura senza padrone
- Interrogazione SQL completa
- Replica geografica multi-master
- Analisi
- Sharding/partizionamento automatico
- Logica del database
- Ricerca full-text integrata
- Strutture dati (code, set, ecc.)
- Scala multidimensionale
- Couchbase
- Eventi, UDF
- Redis + MongoDB
- Solo Redis
- Richiede il modulo RedisJSON
- Solo MongoDB
- Redis è solo Lua
CLIENTI
Storie di successo: Couchbase su MongoDB e Redis
-
"Con meno della metà dei server, possiamo aumentare le prestazioni e ottenere un'architettura molto più scalabile".
Amir Ish-Shalom, Direttore senior delle operazioni, Viber15 miliardi di chiamate e messaggi al giorno60% riduzione dei server totali -
"Couchbase è un archivio di dati distribuito e altamente scalabile che svolge un ruolo fondamentale nei sistemi di caching di LinkedIn".
Michael Kehoe, , Ingegnere senior per l'affidabilità del sito, LinkedIn10M+ query al secondo<4ms latenza media per oltre 2,5 miliardi di articoli -
"Nessuna delle altre soluzioni si avvicinava minimamente alle ampie capacità aziendali di Couchbase".
Aviram Agmon, CTO, Maccabi Health Care2.3 2,3 milioni di clienti su una singola app0 tempi di inattività per migliaia di connessioni giornaliere
CODICE SNIPPET
L'API SQL++ e singola di Couchbase primeggia su Redis/MongoDB
> SQL
// 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');
> SQL
// Redis lacks scope and collection capability
const redisClient = redis.createClient({ ... });
redisClient.connect();
const value = await redisClient.get('key');
> SQL
/* 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
> SQL
// 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 }}]})
> SQL
// Redis lacks a complex query language like SQL