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 -
"Couchbase es un almacén de datos distribuido y altamente escalable que desempeña un papel fundamental en los sistemas de almacenamiento en caché de LinkedIn".
Michael Kehoe, , Ingeniero sénior de fiabilidad del sitio web, LinkedIn10M+ consultas por segundo<4ms latencia media para más de 2.500 millones de elementos -
"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
// 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');
// Redis lacks scope and collection capability
const redisClient = redis.createClient({ ... });
redisClient.connect();
const value = await redisClient.get('key');
/* 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
// 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 }}]})
// Redis lacks a complex query language like SQL