Redis (für REmote DIctionary Server) (IBM-externer Link) ist ein speicherinterner Open-Source-NoSQL-Schlüssel/Wertespeicher, der in erster Linie als Anwendungscache oder Quick-Response-Datenbank verwendet wird. Da die Daten im Speicher und nicht auf einer Festplatte oder einem Solid-State-Laufwerk (SSD) gespeichert werden, bietet Redis unvergleichliche Geschwindigkeit, Reliabilität und Durchsatz.
Wenn eine Anwendung auf externe Datenquellen angewiesen ist, können die Latenz und der Durchsatz dieser Quellen einen Leistungsengpass darstellen, insbesondere wenn der Datenverkehr zunimmt oder die Anwendung skaliert wird. Eine Möglichkeit, den Durchsatz in diesen Fällen zu verbessern, ist die Speicherung und speicherinterne Bearbeitung von Daten, also näher an der Anwendung. Redis wurde für diese Aufgabe entwickelt: Es speichert alle Daten im Arbeitsspeicher und bietet so den schnellstmöglichen Durchsatz beim Lesen und Schreiben von Daten. Außerdem verfügt es über integrierte Replizierungsfunktionen, mit denen Sie Daten physisch näher am Benutzer platzieren können, um die Latenz so gut wie möglich zu verringern.
Zu den weiteren erwähnenswerten Merkmalen von Redis gehören die Unterstützung mehrerer Datenstrukturen, integriertes Lua-Scripting, mehrere On-Disk-Permanenzstufen und hohe Verfügbarkeit.
Redis unterscheidet sich von "traditionellen" NoSQL-Datenspeichern als Zusatzkomponente, die speziell zur Verbesserung der Anwendungsleistung entwickelt wurde. Nachfolgend einige Besonderheiten im Leistungsspektrum von Redis:
Im Gegensatz zu NoSQL-Datenbanken wie MongoDB und PostreSQL speichert Redis die Daten im Hauptspeicher des Servers und nicht auf Festplatten oder Halbleiter-Laufwerken. Dies ermöglicht deutlich schnellere Reaktionszeiten bei Lese- und Schreibvorgängen. Außerdem trägt es zur Hochverfügbarkeit (zusammen mit Redis Sentinel – siehe unten) und Skalierbarkeit von Services und Anwendungs-Workloads bei.
Redis kann Aufgaben in eine Warteschlange stellen, deren Bearbeitung durch Webclients länger dauern kann als üblich. Multi-Prozess-Warteschlangensteuerung ist in vielen webbasierten Anwendungen von heute gang und gäbe, und Redis macht es einfach, automatisierte, in Python geschriebene Prozesse zu implementieren, die im Hintergrund von Anfrage/Antwort-Zyklen laufen.
Obwohl es sich technisch gesehen um einen Schlüssel/Wertespeicher handelt, ist Redis eigentlich ein Datenstrukturserver, der mehrere Datentypen- und Strukturen unterstützt, darunter die folgenden:
Redis bietet native Client-Integrationsfunktionen, mit denen Entwickler ihre Daten bearbeiten und mit ihnen interagieren können. Derzeit sind in der Redis-Client-Bibliothek weit über 100 verschiedene Open-Source-Clients verfügbar, und Entwickler können problemlos neue Integrationen hinzufügen, um zusätzliche Funktionen und Programmiersprachen zu unterstützen.
Zu den wichtigsten und bemerkenswertesten Eigenschaften von Redis gehören die folgenden:
Redis Sentinel (IBM-externer Link) Ist ein eigenständiges verteiltes System, das Entwicklern hilft, ihre Instanzen so zu kalibrieren, dass sie für Kunden hochverfügbar sind. Sentinel nutzt eine Reihe von Überwachungsprozessen, Benachrichtigungen und automatischen Failovers, um Benutzer zu informieren, wenn mit Master- und Slave-Instanzen etwas nicht in Ordnung ist, und konfiguriert bei Bedarf automatisch neue Verbindungen für Anwendungen.
Redis Cluster (IBM-externer Link) ist eine verteilte Implementierung von Redis, die Datensätze automatisch auf mehrere Knoten aufteilt. Dies ermöglicht höheren Durchsatz und Skalierbarkeit von Datenbankimplementierungen und gewährleistet gleichzeitig einen kontinuierlichen Betrieb für den Fall, dass Knotenuntergruppen nicht mit dem Rest des Clusters kommunizieren können.
Da Redis die Verwendung von Pub/Sub-Befehlen unterstützt (IBM-externer Link), können Benutzer leistungsstarke Chat- und Messaging-Dienste für alle ihre Anwendungen und Services entwickeln. Dazu gehört die Möglichkeit, Listendatenstrukturen zu verwenden, um atomare Unternehmensaktivitäten und Blockungen auszuführen.
Redis nutzt einen persistenten Plattenspeicher (IBM-externer Link), der dafür ausgelegt ist, Prozessausfälle und Netzengpässe zu überstehen. Redis kann Datensätze als persistent definieren, indem es regelmäßig Momentaufnahmen von Daten macht und sie mit Änderungen anhängt, sobald diese verfügbar sind. Redis kann dann so konfiguriert werden, dass diese Datenbank-Backups bei Bedarf oder in automatischen Intervallen erstellt werden, um die Dauerhaftigkeit und Integrität der Datenbank zu gewährleisten.
Sowohl Redis als auch Memcached sind speicherinterne Open-Source-Datenspeicher, die sich jedoch in Bezug auf ihre Vorteile und Funktionen unterscheiden. Memcached ist oft die bevorzugte Wahl für einfache Anwendungen, die weniger Speicherressourcen benötigen, aber es ist begrenzt, wenn Daten in ihrer serialisierten Form gespeichert werden. Die Verwendung von Datenstrukturen in Redis bietet viel mehr Leistung bei der Arbeit mit großen Datensätzen und mehr Möglichkeiten zur Feinabstimmung des Cache-Inhalts und zur Aufrechterhaltung einer größeren Effizienz in bestimmten Anwendungsszenarien.
Während Redis ein speicherintern Datenbankspeicher ist, ist MongoDB als Dokumentenspeicher auf der Festplatte bekannt. Obwohl beide Lösungen für unterschiedliche Zwecke entwickelt wurden, werden sie oft zusammen verwendet, um die Geschwindigkeit und Effizienz einer NoSQL-Datenbank zu maximieren. Aufgrund seiner Zwischenspeicherungsfähigkeit kann Redis benötigte Daten extrem schnell positionieren und dient als Eingabepuffer, der MongoDB effizienter macht und in der Lage ist, eine größere Anzahl von Dokumentenaktualisierungen nahezu in Echtzeit zu verwalten. Mit der Fähigkeit von MongoDB, große Datenmengen zu speichern, und der Fähigkeit von Redis, diese schneller zu verarbeiten, bietet die Kopplung eine leistungsstarke Datenbankmanagementlösung für eine Vielzahl von Anwendungsfällen.
Hier sind einige häufige Anwendungsfälle, von denen Unternehmen bei der Arbeit mit Redis profitieren:
Der Einstieg in Redis ist ein ziemlich nahtloser Prozess, insbesondere mit dem Redis Desktop Manager (RDM) (IBM-externer Link). Und da Redis und RDM Open Source sind, arbeiten aktive Entwicklergemeinschaften ständig an der Verbesserung ihrer Effizienz und der kontinuierlichen Weiterentwicklung der unterstützten Tools und Integrationen.
Weitere Informationen zur Installation und Einrichtung von Redis finden Sie in den Einrichtungsanweisungen in der Community (IBM-externer Link).
Ein Open-Source, In-Memory-Schlüsselwertspeicher, der für den modernen Anwendungsstack entworfen wurde.
Erfahren Sie, wie Sie die richtige Datenbank für Ihre Cloud-native Anwendung auswählen.
Alles, was Sie über NoSQL wissen müssen – ein Datenbankdesign, das höhere Flexibilität bietet als traditionelle Datenbanken.
In diesem Handbuch werden die Funktionen und Vorteile der Verwendung von MongoDB als Teil der Managementlösung Ihrer Unternehmensdatenbank untersucht.