CARACTĂRISTIQUES
Principales caractéristiques de Couchbase par rapport à Redis + MongoDB
- Ce qui est inclus
- Cache intégré
- Flexibilité de JSON
- Synchronisation mobile automatique et synchronisation peer-to-peer
- Une architecture sans faille
- RequĂȘte SQL complĂšte
- Réplication géographique multi-maßtres
- Analyse
- Partage/partitionnement automatique
- Logique de la base de données
- Recherche en texte intégral intégrée
- Structures de données (file d'attente, ensemble, etc.)
- Mise Ă l'Ă©chelle multidimensionnelle
- Couchbase
- Concours complet, UDF
- Redis + MongoDB
- Redis uniquement
- NĂ©cessite le module RedisJSON
- MongoDB uniquement
- Redis ne fonctionne qu'en Lua
CLIENTS
Histoires de réussite : Couchbase sur MongoDB et Redis
-
"Avec moins de la moitié des serveurs, nous pouvons augmenter les performances et obtenir une architecture beaucoup plus évolutive.
Amir Ish-Shalom, Directeur principal des opérations, Viber15 milliards d'appels et de messages par jour60% réduction du nombre total de serveurs -
"La chose la plus importante est la mise Ă l'Ă©chelle multidimensionnelle. Disposer de quelques nĆuds pour un cas d'utilisation spĂ©cifique est trĂšs puissant".
Jay Duraisamy, SVP, USIS Engineering Leader, Equifax300+ Un million de documents en 40 minutes1.5 milliards d'enregistrements en constante Ă©volution -
"Aucune des autres solutions ne s'est approchée des capacités étendues de Couchbase pour les entreprises.
Aviram Agmon, CTO, Maccabi Health Care2.3 2,3 millions de clients sur une seule application0 temps d'arrĂȘt pour des milliers de connexions quotidiennes
CODE SNIPPET
L'API SQL++ et unique de Couchbase l'emporte sur 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