Redis + MongoDB vs. Couchbase: Confronto di benchmark delle prestazioni
Prestazioni e gestibilità superiori
CARATTERISTICHE
Caratteristiche principali di Couchbase vs. Redis + MongoDB
Cosa è incluso
Cache integrata
Flessibilità JSON
Sincronizzazione mobile automatica e sincronizzazione peer-to-peer
Architettura senza master
Interrogazione SQL completa
Replicazione geografica multi-master
Analisi
Sharding/partizionamento automatico
Logica del database
Ricerca full-text integrata
Strutture dati (coda, insieme, ecc.)
Scala multidimensionale
Couchbase
Redis + MongoDB
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, Viber
15
miliardi di eventi di chiamate e messaggi al giorno
60%
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, LinkedIn
10M+
query al secondo
<4ms
latenza media per oltre 2,5 miliardi di articoli

“Nessun'altra soluzione si è avvicinata nemmeno lontanamente alle ampie capacità enterprise di Couchbase.”
Aviram Agmon, CTO, Maccabi Health Care
2.3
milioni di clienti su un'unica app
0
interruzione per migliaia di connessioni giornaliere
Frammento di codice
SQL++ e API unificata di Couchbase eccellono rispetto a Redis/MongoDB
- Couchbase key-value
- Redis chiave-valore
- Couchbase SQL++ query
- Linguaggio di query di MongoDB
- Redis
// scope/collection consentono un'organizzazione più flessibile dei dati
const bucket = cluster.bucket('accounts-receivable');
const scope = bucket.scope('tenant1');
const collection = scope.collection('invoices');
const result = await collection.get('key');
// Redis manca di funzionalità di ambito e raccolta
const redisClient = redis.createClient({ ... });
redisClient.connect();
const value = await redisClient.get('key');
/* equivalente all'esempio Mongo */
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
// equivalente all'esempio SQL++
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 manca di un linguaggio di query complesso come SQL



