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
- Consulta SQL completa
- Replicação geográfica de vários mestres
- Análises
- Sharding/particionamento automático
- Lógica do banco de dados
- Pesquisa de texto completo incorporada
- Estruturas de dados (fila, conjunto, etc.)
- Dimensionamento multidimensional
- Couchbase
- Eventos, UDFs
- Redis + MongoDB
- Somente Redis
- Requer o módulo RedisJSON
- Somente MongoDB
- O Redis é somente em Lua
CLIENTES
Histórias 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, Viber15 bilhões de eventos de chamadas e mensagens/dia60% redução no total de servidores -
"O mais importante é o dimensionamento multidimensional. Ter alguns nós para um caso de uso específico é muito poderoso."
Jay Duraisamy, Vice-presidente sênior, líder de engenharia do USIS, Equifax300+ milhões de documentos em 40 minutos1.5 bilhões de registros em constante mudança -
"Nenhuma das outras soluções chegou nem perto dos amplos recursos empresariais do Couchbase."
Aviram Agmon, CTO, Maccabi Health Care2.3 2,3 milhões de clientes em um único aplicativo0 tempo de inatividade para milhares de conexões diárias
CÓDIGO SNIPPET
O SQL++ e a API única do Couchbase se destacam em relação ao 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