Redis + MongoDB vs. Couchbase: Comparativo de Desempenho
Desempenho e capacidade de gerenciamento superiores
RECURSOS
Principais recursos do Couchbase vs. Redis + MongoDB
O que está incluído
Cache integrado
Flexibilidade do JSON
Sincronização móvel automática e sincronização ponto a ponto
Arquitetura sem mestre
Consultas SQL completas
Replicação geográfica multi-master
Análises
Sharding/particionamento automático
Lógica de banco de dados
Busca de texto completo integrada
Estruturas de dados (fila, conjunto, etc.)
Dimensionamento multidimensional
Couchbase
Redis + MongoDB
CLIENTES
Casos de sucesso: Couchbase sobre MongoDB e Redis

“Com menos da metade dos servidores, podemos aumentar o desempenho e obter uma arquitetura escalável muito melhor.”
Amir Ish-Shalom, Diretor Sênior de Operações da Viber
15
bilhões de chamadas e mensagens por dia
60%
redução no total de servidores

"O Couchbase é um armazenamento de dados distribuído e altamente escalável que desempenha um papel fundamental nos sistemas de cache do LinkedIn."
Michael Kehoe, Engenheiro sênior de confiabilidade do site da equipe, LinkedIn
10M+
consultas por segundo
<4ms
latência média para mais de 2,5 bilhões de itens

“Nenhuma das outras soluções chegou perto das amplas capacidades empresariais do Couchbase.”
Aviram Agmon, CTO, Maccabi Health Care
2.3
milhões de clientes em um único aplicativo
0
tempo de inatividade para milhares de conexões diárias
Trecho de Código
O SQL++ e a API única do Couchbase superam o Redis/MongoDB
- Chave-valor do Couchbase
- Chave-valor do Redis
- Consulta SQL++ do Couchbase
- Linguagem de consulta do MongoDB
- Redis
// 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');
// O Redis não possui capacidade de escopo e coleção
const redisClient = redis.createClient({ ... });
redisClient.connect();
const value = await redisClient.get('key');
/* equivalente ao exemplo do Mongo */
SELECT SUM(value * volume) AS val, symbol
FROM db.stocks
WHERE symbol IN ( "AAPL", "GOOG" ) AND value > 0
GROUP BY símbolo
ORDER BY val DESC, símbolo ASC
// equivalente ao exemplo do SQL++
db.stocks.aggregate([
{ "$match": {
"$and": [
{"symbol": {
"$in": [
"AAPL",
"GOOG"]}},
{ "value": {
"$gt": 0 }}]}},
{ "$group": {
"_id": {
"symbol": "$symbol" },
"soma(valor * volume)": {
"$som": {
"$multiplicar": [
"$valor",
"$volume"]}}}},
{ "$project": {
"_id": 0,
"soma(valor * volume)": "$sum(valor * volume)",
"símbolo": "$_id.symbol"}}
{ "$sort": {
"sum(value * volume)": -1,
"symbol": 1 }}]})
O Redis carece de uma linguagem de consulta complexa como o SQL



