CARACTERÍSTICAS
Características principales de Couchbase frente a Redis + MongoDB
- Qué incluye
- Caché integrada
- Flexibilidad JSON
- Sincronización automática con el móvil y de igual a igual
- Arquitectura sin control
- Consultas SQL completas
- Replicación geográfica multimaestro
- Analítica
- Separación automática
- Lógica de la base de datos
- Búsqueda de texto completo integrada
- Estructuras de datos (cola, conjunto, etc.)
- Escala multidimensional
- Couchbase
- Eventos, UDFs
- Redis + MongoDB
- Sólo Redis
- Requiere el módulo RedisJSON
- Sólo MongoDB
- Redis es sólo Lua
CLIENTES
Casos de éxito: Couchbase sobre MongoDB y Redis
-
"Con menos de la mitad de servidores, podemos aumentar el rendimiento y conseguir una arquitectura mucho más escalable".
Amir Ish-Shalom, Director de Operaciones, Viber15 mil millones de llamadas y mensajes al día60% reducción del total de servidores -
"Lo más importante es el escalado multidimensional. Tener unos pocos nodos para un caso de uso específico es muy potente".
Jay Duraisamy, SVP, Líder de Ingeniería USIS, Equifax300+ millones de documentos en 40 minutos1.5 mil millones de registros en constante cambio -
"Ninguna de las otras soluciones se acercaba siquiera a las amplias capacidades empresariales de Couchbase".
Aviram Agmon, Director de Tecnología, Maccabi Health Care2.3 2,3 millones de clientes en una sola aplicación0 tiempo de inactividad para miles de conexiones diarias
CÓDIGO SNIPPET
SQL++ y la API única de Couchbase destacan sobre 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