Redis
Der schnelle Open-Source-in-Memory-Datenspeicher kann als Datenbank, Cache-Speicher, Message Broker und Warteschlange genutzt werden.
Vorgestelltes Blog: Was ist neu bei Redis 5?
Was ist Redis?
Redis ist ein blitzschneller Open-Source-in-Memory-Key-Value-Datenspeicher, der als Datenbank, Cache-Speicher, Message Broker und Warteschlange genutzt werden kann. Er bietet Reaktionszeiten von unter einer Millisekunde und kann so Millionen von Anforderungen für Echtzeitanwendungen in den Bereichen Gaming, Ad-Tech, Finanzdienstleistungen, Gesundheitswesen und IoT verarbeiten. Redis wird häufig eingesetzt für Caching, Sitzungsmanagement, Echtzeitanalysen, Geodaten, Chat/Messaging, Media-Streaming und Spiele-Bestenlisten.
Wie funktioniert Redis?
Im Gegensatz zu Datenbanken, die Daten auf Festplatte oder SSDs speichern, befinden sich bei Redis alle Daten im In-Memory-Datenspeicher. Durch den Wegfall des erforderlichen Platten- bzw. Datenträgerzugriffs treten bei In-Memory-Datenspeichern wie Redis keine Verzögerungen aufgrund von Suchzeiten auf. Die Daten sind innerhalb von Mikrosekunden zugänglich. Redis bietet vielseitige Datenstrukturen, hohe Verfügbarkeit, Geodaten, Lua-Scripting, Transaktionen, On-Disk-Persistenz und Cluster-Unterstützung, sodass Echtzeit-Internet-Apps leichter erstellt werden können.
Vollständig verwaltetes Redis mit Verschlüsselung, Online-Cluster-Resizing, hoher Verfügbarkeit und Compliance. Weitere Informationen >>
Vorteile von Redis
In-Memory-Datenspeicher
Im Gegensatz zu Daten in Datenbanken wie PostgreSQL, Cassandra, MongoDB und weiteren, die die meisten Daten auf Festplatten oder SSDs speichern, befinden sich sämtliche Redis-Daten im Hauptspeicher des Servers. Verglichen mit herkömmlichen datenträgerbasierten Datenbanken, bei denen für die meisten Vorgänge Roundtrips zum Speichermedium erforderlich sind, kommt es bei In-Memory-Datenspeichern wie Redis zu keinen solchen Zeiteinbußen. Folglich unterstützen die Datenspeicher eine ungleich höhere Anzahl an Operationen mit wesentlich kürzeren Reaktionszeiten. Der Vorteil – eine blitzschnelle Leistung für durchschnittliche Lese- oder Schreibvorgänge von unter einer Millisekunde sowie Unterstützung von Millionen Operationen pro Sekunde.
Flexible Datenstrukturen
Entgegen schematischen Schlüsselwert-Datenspeichern, die begrenzte Datenstrukturen anbieten, verfügt Redis über eine Vielzahl von Datenstrukturen, um Ihre individuellen Anwendungsanforderungen zu erfüllen. Redis unterstützt folgende Datentypen:
- Zeichenfolgen – Text- oder Binärdaten mit einer Größe von bis zu 512 MB
- Listen – mehrere Zeichenfolgen in der Reihenfolge ihrer Hinzufügung
- Sätze – mehrere unsortierte Zeichenfolgen, die sich mit anderen Satzarten überschneiden, vereinen oder voneinander unterscheiden können
- Sortierte Sätze – nach Wert aufgelistete Sätze
- Hashes – eine Datenstruktur zum Speichern einer Liste mit Feldern und Werten
- Bitmuster – ein Datentyp, der Vorgänge auf Bitebene ermöglicht
- HyperLog-Protokolle – eine probabilistische Datenstruktur, die eindeutige Elemente in einem Datensatz schätzt
Einfachheit und Benutzerfreundlichkeit
Redis vereinfacht Ihren Code, indem es Ihnen ermöglicht, weniger Codezeilen zum Speichern, Zugreifen und Verwenden von Daten in Ihren Anwendungen zu schreiben. Sind in Ihrer Anwendung Daten in einer Hash-Zuordnung gespeichert, die Sie in einem Datenspeicher speichern möchten, dann können Sie einfach die Hash-Datenstruktur von Redis zum Speichern der Daten nutzen. Ein ähnlicher Vorgang in einem Datenspeicher ohne Hash-Datenstrukturen würde zahlreiche Codezeilen erfordern, um eine Konvertierung von einem Format in ein anderes vorzunehmen. Redis verfügt über native Datenstrukturen sowie viele Möglichkeiten, um Ihre Daten zu bearbeiten und damit zu interagieren. Redis-Entwicklern stehen mehr als einhundert Open-Source-Clients zur Verfügung. Zu den unterstützten Sprachen gehören Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, R, Go und viele andere.
Replikation und Beständigkeit
Redis verwendet eine primäre Replikatarchitektur und unterstützt die asynchrone Replikation, bei der Daten auf mehrere Replikatserver repliziert werden können. Auf diese Weise können eine verbesserte Leseleistung, da Anforderungen auf Server verteilt werden können, und eine schnellere Wiederherstellung bereitgestellt werden, falls der primäre Server ausfallen sollte. Für Beständigkeit unterstützt Redis Zeitpunktsicherungen (der Redis-Datensatz wird auf eine Festplatte kopiert).
Hohe Verfügbarkeit und Skalierbarkeit
Redis bietet eine primäre Replikatarchitektur auf einem einzelnen Primärknoten oder in einer Cluster-Topologie. So können Sie hochverfügbare Lösungen erstellen, die konsistente Leistung und Zuverlässigkeit ermöglichen. Wenn Sie die Cluster-Größe anpassen möchten, stehen Ihnen viele Möglichkeiten zur horizontalen und vertikalen Skalierung sowie zur horizontalen Herunterskalierung zur Verfügung. Folglich kann Ihr Cluster entsprechend Ihren Anforderungen angepasst werden.
Erweiterbarkeit
Redis ist ein Open-Source-Projekt das von einer dynamischen Community unterstützt wird. Mit Redis bestehen keine Abhängigkeiten von Anbietern oder Technologie, da der Datenspeicher auf offenen Standards beruht, offene Datenformate unterstützt und über zahlreiche Clients verfügt.
Beliebte Einsatzbereiche für Redis
Caching
Redis ist eine großartige Wahl für die Implementierung eines In-Memory-Caches mit hoher Verfügbarkeit, durch den sich die Latenz des Datenzugriffs reduziert, der Durchsatz erhöht und die Last für Ihre relationale oder NoSQL-Datenbank bzw. -Anwendung verringert. Redis kann häufig angeforderte Elemente mit Reaktionszeiten von unter einer Millisekunde verarbeiten. Außerdem können Sie problemlos für höhere Belastungen skalieren, ohne dass das kostspielige Back-end größer wird. Das Caching von Ergebnissen aus Datenbankabfragen, durchgehenden Sitzungen, Webseiten und häufig verwendeter Elemente, wie Images, Dateien sowie Metadaten, sind beliebte Beispiele für Caching mit Redis.
Chat, Messaging und Warteschlangen
Redis unterstützt Pub/Sub mit einem Musterabgleich und einer Vielzahl von Datenstrukturen wie Listen, sortierten Sätzen und Hashes. Auf diese Weise kann Redis Chat-Räume, Echtzeit-Kommentar-Streams, Feeds in sozialen Medien sowie Server-Interkommunikation mit hoher Leistung unterstützen. Die Redis List-Datenstruktur vereinfacht das Implementieren einer benutzerfreundlichen Warteschlange. Listen bieten atomare Vorgänge und Blockierungsfunktionen, sodass sie sich für verschiedene Anwendungen eignen, die einen zuverlässigen Message Broker oder eine Kreisliste erfordern.
Spielebestenlisten
Redis ist eine beliebte Option unter Spieleentwicklern, die Echtzeit-Bestenlisten erstellen möchten. Verwenden Sie einfach die Redis Sorted Set-Datenstruktur, die Eindeutigkeit von Elementen bereitstellt und die nach Punkten von Benutzern sortierte Liste beibehält. Das Erstellen einer Echtzeit-Rangliste ist so einfach wie das Aktualisieren der Punkte eines Benutzers bei jeder Änderung. Sie können Sorted Sets auch verwenden, um Zeitreihendaten mithilfe von Zeitstempeln als Punkte zu verarbeiten.
Sitzungsspeicher
Redis ist ein In-Memory-Datenspeicher mit hoher Verfügbarkeit und Beständigkeit, der sich bei Anwendungsentwicklern großer Beliebtheit erfreut, da damit Sitzungsdaten für Anwendungen im Internet gespeichert und verwaltet werden können. Der Datenspeicher bietet Latenzen von unter einer Millisekunde, Skalierung und Ausfallsicherheit, die für die Verwaltung von Sitzungsdaten, wie Benutzerprofilen, Anmeldeinformationen, Sitzungsstatus sowie benutzerspezifischer Personalisierung, erforderlich sind.
Umfassendes Medien-Streaming
Redis bietet einen schnellen In-Memory-Datenspeicher für die Ausführung von Live-Streaming-Anwendungsfällen. Redis kann des Weiteren zum Speichern von Metadaten zu Benutzerprofilen und zum Anzeigeverlauf, der Authentifizierungsinformationen und -Token für Millionen Benutzer sowie von Manifestdateien verwendet werden, um Netzwerke zur Bereitstellung von Inhalten (Content Delivery Networks, CDNs) zum Streamen von Videos für Millionen Benutzer von Mobil- und Desktopgeräten gleichzeitig zu aktivieren.
Geodaten
Redis bietet speziell entwickelte In-Memory-Datenstrukturen und -Operatoren zum Verwalten von Echtzeit-Geodaten nach Maß und bei hoher Geschwindigkeit. Die Redis-Befehle, z. B. GEOADD, GEODIST, GEORADIUS und GEORADIUSBYMEMBER, zum Speichern, Verarbeiten und Analysieren von Geodaten in Echtzeit gestalten den Umgang mit Geodaten schnell und einfach. Sie können Redis verwenden, um Ihren Anwendungen standortbezogene Funktionen wie Fahrtzeit, Entfernung sowie Sehenswürdigkeiten hinzuzufügen.
Machine Learning
Moderne datengesteuerte Anwendungen erfordern Machine Learning, um schnell große Datenvolumen, -unterschiede und -geschwindigkeiten zu verarbeiten sowie die Entscheidungsfindung zu automatisieren. Für Anwendungsfälle, wie Betrugsermittlung in Spielen und Finanz-Services, bei der Echtzeit-Gebotsabgabe in Ad-Tech, der Kontaktvermittlung beim Dating und bei Mitfahrgelegenheiten, ist die Fähigkeit, Live-Daten zu verarbeiten und Entscheidungen in unter einer Millisekunde zu treffen, von größter Bedeutung. Redis bietet Ihnen einen schnellen In-Memory-Datenspeicher zum zügigen Erstellen, Schulen und Bereitstellen von Machine-Learning-Modellen.
Echtzeitanalysen
Redis kann in Kombination mit anderen Streaming-Lösungen, wie Apache Kafka und Amazon Kinesis, als In-Memory-Datenspeicher eingesetzt werden, um Echtzeitdaten einzulesen und mit einer Latenz von unter einer Millisekunde zu verarbeiten und zu analysieren. Redis ist die ideale Wahl für Anwendungsfälle mit Echtzeitanalysen wie Analysen in sozialen Medien, gezielte Anzeigenschaltung, Personalisierung und IoT.
Unterstützung von Sprachen
Redis unterstützt die meisten führenden Programmiersprachen und -protokolle, einschließlich:
Python
Java
PHP
Perl
Go
Ruby
C/C#/C++
JavaScript
Node.js
Vollständig verwaltetes Redis in AWS
Redis-Ressourcen