Redis Streams – Einführung
Wofür steht REDIS?
Re mote Di ctionary S erver
Was ist Redis Streams und welche Vorteile gibt es?
Redis ist ein Datenspeicher auch, „Open Source In-Memory-Schlüsselwert Datenspeicher“ genannt, womit man einfach und schnell an seine Daten kommt. Denn Redis verfügt über viele Datenstrukturen, um individuell viele Anwendungsanforderungen zu erfüllen.
Im Gegensatz zu Festplattenspeicher oder SSD werden im In-Memory Datenspeicher, durch die vielseitigen Datenstrukturen, Verzögerungen von Suchzeiten vermieden. Redis Streams bewahrt die Daten auf Dauer auf und dadurch kann man auf die Daten jederzeit zugreifen. Redis findet Anwendung z.B. in Datenbanken, Cache, Messsage Broker und weitere.
Die Reaktionszeiten sind bemerkenswert; denn mit einer Zeit von unter einer Millisekunde kann eine Anfrage auf Millionen gespeicherter Schlüssel ausgewertet werden.
Wie einfach und benutzerfreundlich Redis ist, zeigt sich daran, dass man weniger Codezeichen schreiben muss, um Lese- oder Schreiboperationen durchzuführen. Außerdem stehen Entwicklern mehr als einhundert Open Source Clients zur Verfügung, wie z.B. Java, C++, Python, PHP uvm.
Redis CLI Beispiel:
SET key "Hello" GET key
Redis kann auch als Cluster betrieben werden. Dabei werden die Anfragen auf mehrere Server verteilt, was die Leseleistungen optimiert. Hochverfügbare Lösungen können mit den primären Replikationsarchitekten erreicht werden und eine konstante Leistung und Zuverlässigkeit bieten. Außerdem stehen viele Möglichkeiten zur horizontalen und vertikalen Skalierung zur Verfügung, wenn die Cluster Größe angepasst werden soll.
Ein großer Vorteil ist zudem auch, die Erweiterbarkeit, denn eine Abhängigkeit von Anbietern oder Technologien existiert nicht, da der Datenspeicher auf offene Standards beruht und individuelle Datenformate unterstützt sowie über zahlreiche Clients verfügt.
STREAMS
In Anwendung mit KENBUNs Sprachassistenten KIDOU verwenden wir einen neuen Datentyp „STREAMS“ der aus Redis 5.0 eingefügt wurde und der Datenströme unterstützt. Auf abstrakte Weise wird eine Protokolldatenstruktur modelliert und darauf leistungsfähige Operationen zur Verfügung gestellt. Redis Streams ermöglicht dem Consumer auf neue Daten zu warten, die von dem Producer im Stream hinzugefügt werden. Die Daten eines Streams werden persistiert und stehen, auch nachdem ein Consumer sie gelesen hat, zur Verfügung. Zusätzlich gibt es ein Konzept namens „Consumer Groups“. Die Consumer Groups kommen zum Einsatz, wenn mehrere Consumer auf einen Stream hören, aber jede Nachricht auf dem Stream nur von einem Consumer bearbeitet werden soll.
Redis CLI Beispiel:
# Daten auf einen Stream schreiben" XADD mystream * sensor-id 1234 temperature 19.8 # Alle Daten eines Streams lesen XRANGE mystream - +
Consumer Groups wurden ursprünglich durch das beliebte Messaging-System Kafka (TM) eingeführt. Redis implementiert eine ähnliche Idee in einer etwas anderen Art und Weise aber das Ziel ist dasselbe: einer Gruppe von Clients die Zusammenarbeit zu ermöglichen und einen anderen Teil desselben Nachrichtenstroms zu konsumieren. In unserem YouTube Video „Einführung in Redis Streams“ erfährst Du ganz genau welche Möglichkeiten und Vorteile Redis Streams mit sich bringt.