Redis Streams – Einführung

von | 5. Jul. 2021 | Künstliche Intelligenz

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.

Dr. Simon Ottenhaus, AI-Engineer

Dr. Simon Ottenhaus hat Elektrotechnik an der Universität Stuttgart studiert und am KIT im Bereich Robotik über das autonome Greifen unbekannter Objekte mit Deep-Learning-Methoden promoviert. Bei der KENBUN IT AG arbeitet er am Transfer von Methoden des maschinellen Lernens aus der Forschung in die Industrie, insbesondere an Sprachassistenten im industriellen Kontext.

KENBUN IT AG
Haid-und-Neu-Straße 7
76131 Karlsruhe
+49 721 781 503 02
office@kenbun.de

WHITEPAPER    
SPRACHASSISTENTEN