Was ist der Unterschied zwischen Redis OSS und MongoDB?


Was ist der Unterschied zwischen Redis OSS und MongoDB?

Remote Dictionary Server (Redis OSS) und MongoDB sind zwei NoSQL-Datenbanken, die Daten in einem unstrukturierten Format speichern. NoSQL-Datenbanken speichern Daten anders als relationale Datenbanken, die Tabellen, Zeilen und Spalten verwenden. Redis OSS ist eine quelloffene In-Memory-Datenbank, die Daten als Schlüssel-Wert-Paare speichert. Für eine hohe Leistung speichert es Daten im RAM, bietet jedoch als zusätzliche Funktion dauerhaften Speicher auf der Festplatte. MongoDB ist eine quellverfügbare Dokumentdatenbank, die Daten im serialisierten JSON-Format speichert. Es speichert Daten im externen Speicher, enthält aber in der Unternehmensversion eine In-Memory-Speicher-Engine.

Weitere Informationen zu NoSQL-Datenbanken »

Lesen Sie mehr über MongoDB »

 

Datenmodell: Redis im Vergleich zu MongoDB

Redis und MongoDB verwenden unterschiedliche Datenmodelle und speichern Daten architektonisch unterschiedlich. 

Redis

Redis speichert Daten im RAM, so dass Sie direkt vom Speicher aus auf die Daten zugreifen können. Dies sorgt zwar für Antworten mit geringer Latenz, begrenzt aber auch das Datenvolumen, das Sie speichern können. Redis speichert den Datensatz durch Snapshotting und AOF-Protokollierung (Append-Only File) auf der Festplatte, was die Lebensdauer von Daten gewährleistet. 

Redis speichert Daten als Schlüssel-Wert-Paare, wobei jeder Dateneintrag über einen eindeutigen Schlüssel verfügt. Es unterstützt verschiedene Datentypen wie sortierte Datensätze, Hashes, Mengen, Listen und Zeichenfolgen. Schlüssel können eine beliebige Länge von bis zu insgesamt 512 MB haben.

Die folgende Abbildung zeigt das Redis-Datenmodell.

 

MongoDB

MongoDB folgt einem Dokumentdatenmodell, um Daten primär im externen Speicher zu speichern. Es speichert Daten als serialisierte binäre JSON-Dokumente (BSON). Die maximale Dokumentgröße beträgt 16 MB.

Die Architektur von MongoDB eignet sich für die Skalierung großer Datenmengen, da sie die Leistungsfähigkeit basierend auf dem Speicherplatz erhöhen kann. Unternehmensanwender können auch eine In-Memory-Speicher-Engine für einen hybriden Ansatz verwenden. Sie können die Zwischenspeicherung im Arbeitsspeicher für Daten verwenden, auf die Sie häufig zugreifen, während Sie sich für die Persistenz weiterhin hauptsächlich auf Festplattenspeicher verlassen.

Die folgende Abbildung zeigt das MongoDB-Datenmodell.

Ähnlichkeiten zwischen Redis OSS und MongoDB

Bei Redis OSS und bei MongoDB handelt es sich um NoSQL-Datenbanken, die flexibles Schema-Design, horizontale Skalierbarkeit und hohe Verfügbarkeit bieten. Sie können damit unstrukturierte Daten wie Dokumente und Images flexibler speichern. Anders als relationale Datenbanken können sie dynamische Datenmodelle verwenden, die keine Schemata verwenden.

Zwischen diesen beiden nicht relationalen Datenbanken gibt es verschiedene Ähnlichkeiten.

Sekundäre Indizierung

Sowohl Redis OSS als auch MongoDB bieten eine sekundäre Indizierung. Mit dieser Funktion können Sie zusätzliche Indizes für Nicht-Primärschlüsselfelder erstellen. Sobald Sie diese zusätzlichen Indizes erstellt haben, können Sie Daten schneller abfragen und abrufen, während Sie nach verschiedenen Kriterien suchen. Durch die sekundäre Indizierung werden die Flexibilität und Abfrageleistung in beiden NoSQL-Datenbanken erhöht.

Replikation

Um eine hohe Verfügbarkeit und Beständigkeit zu gewährleisten, nutzen MongoDB und Redis OSS die Replikation. Sie erstellen Replikatsätze (oder Cluster), in denen die NoSQL-Datenbanken Daten über mehrere Knoten replizieren, um Redundanz zu gewährleisten. Beide Datenbanken verfügen über eine primäre Instance, die Schreibvorgänge akzeptiert, und eine oder mehrere sekundäre Instances, die die Daten der primären Instance replizieren. Wenn die primäre Instance ausfällt, kann eine sekundäre Instance die Arbeit übernehmen.

 

Leistung

Sowohl Redis OSS als auch MongoDB liefern Antworten mit geringer Latenz und können Workloads mit hohem Durchsatz bewältigen. Bei Redis OSS handelt es sich um eine In-Memory-Datenbank, das heißt, sie speichert Daten im Arbeitsspeicher. Dieses Speichersystem ermöglicht es Redis OSS, Lese- und Schreibvorgänge mit hoher Geschwindigkeit durchzuführen. MongoDB kombiniert Speicherspeicher mit festplattenbasiertem Speicher, was Geschwindigkeit und Datenbeständigkeit bietet. 

Hauptunterschiede: Redis OSS im Vergleich zu MongoDB

Redis OSS und MongoDB unterscheiden sich auch hinsichtlich ihrer Funktionen und Fähigkeiten. Hier sind einige weitere wichtige Unterschiede zwischen den beiden.

Skalierung 

Durch die horizontale Skalierung kann MongoDB große Datenmengen effizient verarbeiten. Es nutzt Sharding, um Daten über mehrere Regionen und Knoten hinweg zu verteilen. Mit Sharding-übergreifenden Vorgängen können Sie Abfragen und Aktualisierungen über mehrere Shards hinweg durchführen.

Redis OSS bietet nicht das gleiche Maß an Skalierbarkeit wie MongoDB. Redis OSS nutzt standardmäßig nur einen einzigen Shard für primäre Vorgänge. Sie müssen das Sharding manuell auf einer Hash-Basis aufrechterhalten, was die Verwaltung komplizierter macht. Außerdem verfügt Redis OSS nicht über Shard-übergreifende Funktionen. 

Verfügbarkeit

Sowohl MongoDB als auch Redis OSS unterstützen Verfügbarkeit durch Replikation. MongoDB unterstützt jedoch ein höheres Maß an Verfügbarkeit durch Verwendung von Replikatsätzen. MongoDB kann bis zu 50 Kopien Ihrer Daten erstellen, verteilt auf mehrere Knoten, Rechenzentren und sogar geografische Regionen. Es unterstützt automatische Failover-Mechanismen. Wenn ein Primärknoten offline geht, wählt er aus den Replikaten einen neuen Primärknoten aus. 

Im Gegensatz dazu bietet Redis OSS standardmäßig kein automatisches Failover. Administratorbenutzer initiieren einen manuellen Failover, insbesondere wenn sich das Replikat in einem anderen Rechenzentrum befindet. Wenn Sie ein automatisches Failover wünschen, müssen Sie eine separate Komponente mit der Bezeichnung Redis Sentinel einrichten und konfigurieren. 

Integrität

MongoDB unterstützt atomare, konsistente, isolierte und dauerhafte (ACID) Transaktionen mit mehreren Dokumenten. Auf diese Weise können Sie die Daten über mehrere Vorgänge hinweg konsistent halten. Mithilfe von Transaktionen mit mehreren Dokumenten können Sie mehrere Vorgänge als eine Einheit durchführen. Innerhalb einer Sitzung überträgt MongoDB alle Änderungen oder macht sie rückgängig, was zur Sicherstellung der ACID-Compliance beiträgt.

Redis OSS dagegen bietet keine integrierte ACID-Unterstützung. Sie können jedoch den Befehl MULTI verwenden, um mehrere Befehle zu einer einzigen atomaren Operation zusammenzufassen. Doch dies allein ist keine Lösung. Sie müssen zudem die Rollback-Funktion im Anwendungscode implementieren, da Redis OSS diese nicht nativ in Transaktionen unterstützt. 

Abfragesprache

MongoDB bietet ein hohes Maß an Flexibilität bei der Abfrage und führt sogar komplexe räumliche Berechnungen und Datenanalysefunktionen durch. MongoDB verwendet die MongoDB Query Language (MQL), die eine JSON-ähnliche Syntax unterstützt, um erweiterte Abfragen zu vereinfachen. Mit MQL können Sie erweiterte Abfragen über einzelne oder mehrere Schlüssel, Textsuchen und Bereiche hinweg durchführen. 

Im Gegensatz dazu ist Redis OSS eher für schnelle Schlüssel-Wert-Zugriffe optimiert als für komplexe Abfrage- und Suchfunktionen. Redis OSS wird hauptsächlich durch die Bereitstellung von Schlüsseln und den Abruf entsprechender Daten genutzt. Redis OSS verfügt nicht über eine Abfragesprache wie MQL. Stattdessen bietet es eine Vielzahl von Befehlen zur Interaktion mit Daten. Sie können beispielsweise den Befehl GET verwenden, um Werte abzurufen, indem Sie die entsprechenden Schlüssel bereitstellen. 

Wann Redis OSS verwendet werden sollte und wann MongoDB

Nutzen Sie für die temporäre Datenspeicherung mit schnellen Abfragen Redis OSS. Verwenden Sie für die langfristige dauerhafte Speicherung komplexer Daten mit umfassenden Abfragen MongoDB. 

Redis OSS bietet schnellen Zugriff auf häufig abgerufene Daten und eignet sich daher für das Caching und die Sitzungsspeicherung. Aufgrund der integrierten Unterstützung für Publish-Subscribe-Messaging-Muster (Pub/Sub) können Sie dies in Echtzeitanwendungen oder ereignisgesteuerten Architekturen verwenden. Außerdem bietet es fortgeschrittene Datenstrukturen wie sortierte Sätze und Listen, die zur Implementierung von Ratenbegrenzungen, Warteschlangen für Aufgaben und Systemen zur Planung von Aufträgen verwendet werden können. Es ist auch effizient beim Zählen und Aggregieren von Daten, wodurch es sich für die Verfolgung von Bestenlistendaten oder anderen Statistiken eignet.

Im Gegensatz dazu können Sie MongoDB zum Speichern komplexer Anwendungsdaten in großem Maßstab verwenden. Es bietet herkömmlichere Datenbankstrukturen und eine Speicherung, die kein Schema verwendet, so dass Entwickler einen flexibleren Ansatz wählen können. Es verarbeitet effizient große Schreib- und Lesevorgänge und kann große Datenmengen verwalten. Sie können es für die Inhaltsverwaltung oder für die Verwaltung von Benutzerprofilen im großen Maßstab verwenden.  MongoDB verfügt außerdem über integrierte Geoindizes und unterstützt räumliche Abfragen, wodurch es sich für standortbasierte Anwendungen oder Daten mit Geodatenkomponenten eignet.

Können Redis OSS und MongoDB zusammen verwendet werden?

Die gemeinsame Nutzung von Redis OSS und MongoDB ist in vielen Anwendungen eine gängige Strategie. Die Geschwindigkeit von Redis OSS stellt eine natürliche Ergänzung zu den langfristigen Speichermöglichkeiten von MongoDB dar. Sie können sowohl Redis OSS als auch MongoDB nutzen, um die Datenbankleistung zu optimieren, die Skalierbarkeit zu erhöhen und ein flexibles System für Ihre Anwendungen bereitzustellen.

Sie können Redis OSS beispielsweise für die Echtzeit-Datenverarbeitung verwenden. Redis OSS eignet sich optimal für die Erfassung und Verarbeitung von Live-Streaming-Daten, da es Szenarien mit einer Echtzeit-Datenverarbeitung bewältigt. Anschließend können Sie die Daten oder Ergebnisse, die Sie mit Redis OSS verarbeiten, in MongoDB zur Archivierung und für eine komplexere integrierte Analytik speichern.

Ein anderes Beispiel ist ein hybrides Datenmodell für Redis OSS und MongoDB. Sie können den Schlüssel-Wert-Speicher von Redis OSS und das dokumentenorientierte Modell von MongoDB gleichzeitig nutzen. Redis OSS bietet ein einfaches System für den Zugriff auf häufig abgerufene Metadaten. Für komplexere Datenstrukturen können Sie MongoDB nutzen. 

Zusammenfassung der Unterschiede: Redis OSS im Vergleich zu MongoDB

 

Redis OSS

MongoDB

Datenmodell

Schlüsselwertbasierter Datenspeicher im Speicher.

Persistente Dokumentdatenbank.

Skalierung

Redis OSS ist nicht so skalierbar.

Eine MongoDB-Datenbank ist durch horizontale Skalierung, Fragmentierung und Partitionierung von Daten hoch skalierbar.

Verfügbarkeit

Sie benötigen eine separate Komponente mit der Bezeichnung Redis Sentinel, um Cluster auf automatisches Failover zu überwachen.

Standardmäßig automatisches Failover.

Integrität

Redis OSS bietet Befehle zum Erstellen einzelner atomarer Vorgänge. Der Rollback muss im Anwendungscode verwaltet werden.

MongoDB verfügt über integrierte Unterstützung für ACID-Transaktionen und Rollbacks mit mehreren Dokumenten.

Abfragesprache

Redis OSS nutzt Befehle für Abfragen.

MongoDB verwendet MongoDB Query Language (MQL), um Daten abzufragen und zu bearbeiten.

Wie kann AWS Ihnen bei Ihren Anforderungen in Sachen Redis OSS und MongoDB helfen?

Amazon Web Services (AWS) bietet zahlreiche Lösungen zur Unterstützung Ihrer Arbeit mit Redis OSS und MongoDB.

Amazon MemoryDB ist ein Redis-OSS-kompatibler, langlebiger In-Memory-Datenbank-Service, der eine extrem hohe Leistung bietet. Es ist speziell für moderne Anwendungen konzipiert, die mit Microservices-Architekturen erstellt wurden. MemoryDB speichert Daten dauerhaft über mehrere Availability Zones (AZs) hinweg unter Verwendung eines Multi-AZ-Transaktionsprotokolls, um schnelles Failover, Datenbankwiederherstellung und Knotenneustarts zu ermöglichen. Sie können eine Leselatenz im Mikrosekundenbereich und eine Schreiblatenz im einstelligen Millisekundenbereich sowie einen hohen Durchsatz erzielen. 

Amazon ElastiCache for Redis ist ein vollständig verwalteter Caching-Service, der die Einrichtung, den Betrieb und die Skalierung eines Cache in der Cloud vereinfacht. Mit ElastiCache für Redis können Sie die Anwendungsgeschwindigkeit beschleunigen und Lese- und Schreiblatenzen im Mikrosekundenbereich beseitigen, indem Sie Daten aus primären Datenbanken und Datenspeichern zwischenspeichern.

Amazon DocumentDB (mit MongoDB-Kompatibilität) ist eine vollständig verwaltete native JSON-Dokumentendatenbank, die die Workloads von Unternehmen mühelos skaliert. Durch die Möglichkeit, Daten in einem flexiblen JSON-Format zu speichern, abzufragen, zu indizieren und zu aggregieren, können Sie Anwendungen schneller als je zuvor erstellen und weiterentwickeln. Mit einer verwalteten Datenbank müssen Sie keine manuellen Datenbankverwaltungsaufgaben mehr durchführen, was die Produktivität erhöht und die Entwicklung optimiert.

Unternehmen Sie erste Schritte mit Redis OSS und MongoDB in AWS, indem Sie noch heute ein Konto erstellen.

Nächste Schritte mit AWS

Mit der Entwicklung mit Redis OSS beginnen

Erfahren Sie mehr über den Einstieg mit Redis OSS in AWS

Weitere Informationen 
Fangen Sie an, mit MongoDB zu entwickeln

Informationen zu den ersten Schritten mit MongoDB in AWS

Weitere Informationen