Redis ist ein schneller, Open-Source-In-Memory-Schlüsselwert-Datenstrukturspeicher. Redis bietet eine Reihe von vielseitigen In-Memory-Datenstrukturen, die es Ihnen ermöglichen, verschiedene benutzerdefinierte Anwendungen problemlos zu erstellen. Häufige Anwendungsfälle für Redis sind u. a. Caching, Sitzungsverwaltung, Pub/Sub und Bestenlisten. Redis ist heute der beliebteste Schlüsselwertspeicher. Er ist BSD-lizenziert, wurde im optimierten C-Code geschrieben und unterstützt mehrere Entwicklungssprachen. Redis ist ein Akronym für REmote DIctionary Server.

Aufgrund der Geschwindigkeit und Benutzerfreundlichkeit ist Redis eine beliebte Wahl für Web-, Mobil-, Spiele-, Ad-Tech- und IoT -Anwendungen, die eine bestmögliche Leistung erfordern. AWS stellt Redis-Unterstützung durch einen vollständig verwalteten und optimierten Datenbank-Service namens Amazon ElastiCache für Redis bereit und ermöglicht Kunden außerdem das Ausführen des selbst verwalteten Redis auf AWS EC2.

Amazon EC2 Container Service

Erste Schritte
Benefit_ElastiCache_Performance

Alle Redis-Daten befinden sich im Gegensatz zu den meisten Datenbankverwaltungssystemen, die Daten auf Festplatten oder SSDs speichern, im Hauptspeicher des Servers. Da kein Festplattenzugriff mehr erforderlich ist, vermeiden In-Memory-Datenbanken wie Redis Suchzeitverzögerungen und können auf Daten mit einfacheren Algorithmen zugreifen, die weniger CPU-Anweisungen verwenden. Die Ausführung typischer Vorgänge dauert weniger als eine Millisekunde.

Benefit_ElastiCache_data_structure

Redis ermöglicht Benutzern das Speichern von Schlüsseln, die verschiedenen Datentypen zugeordnet sind. Der grundlegende Datentyp ist eine Zeichenfolge. Dabei kann es sich um Text- oder Binärdaten mit einer Größe von bis zu 512 MB handeln. Redis unterstützt außerdem Zeichenfolgenlisten in der Reihenfolge ihrer Hinzufügung; Sätze aus unsortierten Zeichenfolgen; sortierte Sätze, die nach einer Punktzahl sortiert sind; Hashes, die eine Liste mit Feldern und Werten speichern; HyperLog-Protokolle zum Zählen der eindeutigen Elemente in einem Datensatz. Mithilfe von Redis kann fast jeder Datentyp im Arbeitsspeicher gespeichert werden.

Benefit_ElastiCache_easeofuse

Redis verfügt über einige Tools, mit denen Entwicklung und Betrieb schneller und einfacher werden, darunter Pub/Sub zum Veröffentlichen von Nachrichten in Kanälen, die an Abonnenten gesendet werden – sehr gut für Chat- und Messaging-Systeme geeignet. TTL-Schlüssel können eine bestimmte Time To Live haben, nach der sie sich selbst löschen – nützlich, um das Füllen der Datenbank mit nicht benötigten Daten zu vermeiden. Atomare Zähler stellen sicher, dass Wettlaufsituationen nicht zu inkonsistenten Ergebnissen führen, und Lua stellt eine leistungsstarke, aber benutzerfreundliche Skripterstellungssprache bereit.

Benefit_ElastiCache_replication

Redis verwendet eine Master-Slave-Architektur und unterstützt die asynchrone Replikation, bei der Daten auf mehrere Slave-Server repliziert werden können. Auf diese Weise können eine verbesserte Leseleistung (Anforderungen können auf Server verteilt werden) und Wiederherstellung bereitgestellt werden, falls der Primärserver ausfallen sollte.

Redis unterstützt Zeitpunkt-Snapshots (der Redis-Datensatz wird auf eine Festplatte kopiert) und das Erstellen einer Append Only File (AOF) zum Speichern der einzelnen Datenänderungen auf die Festplatte zum Zeitpunkt des Schreibens. Beide Methoden ermöglichen die schnelle Wiederherstellung der Redis-Daten bei einem Ausfall.

Benefit_ElastiCache_languageSupport

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.

Redis "vor" einer anderen Datenbank sorgt für einen In-Memory-Hochleistungscache, um die Zugriffslatenz zu reduzieren, den Durchsatz zu erhöhen und die Belastung einer relationalen oder NoSQL-Datenbank abzuschwächen.

Redis eignet sich sehr gut für Sitzungsverwaltungsaufgaben. Verwenden Sie Redis einfach als schnellen Schlüsselwertspeicher mit entsprechender TTL für Sitzungsschlüssel zum Verwalten Ihrer Sitzungsinformationen. Sitzungsverwaltung wird normalerweise für Online-Anwendungen benötigt, darunter Spiele, E-Commerce-Websites und Social Media-Plattformen.

Mithilfe der Redis Sorted Set-Datenstruktur werden Elemente in einer Liste sortiert nach Punktzahlen aufgeführt. Auf diese Weise können problemlos dynamische Bestenlisten erstellt werden, um zu zeigen, wer ein Spiel gewinnt, um die beliebtesten Nachrichten zu veröffentlichen oder einfach um zu zeigen, wer gerade in Führung liegt.

Redis kann die Anzahl von Ereignissen messen und bei Bedarf drosseln. Mithilfe eines Redis-Zählers, der dem API-Schlüssel eines Clients zugeordnet ist, können Sie die Anzahl der Zugriffsanforderungen innerhalb eines bestimmten Zeitraums zählen und Maßnahmen ergreifen, wenn ein Grenzwert erreicht wird. Quotenbegrenzer werden häufig zum Beschränken der Anzahl der Beiträge in einem Forum, zum Beschränken der Ressourcennutzung und zum Eindämmen von Spam-Auswirkungen verwendet.

Die Redis List-Datenstruktur vereinfacht das Implementieren einer benutzerfreundlichen, dauerhaften Warteschlange. Listen bieten atomare Vorgänge und Blockierungsfunktionen, sodass sie sich für verschiedene Anwendungen eignen, die eine zuverlässige Nachrichtenverwaltung oder eine Kreisliste erfordern.

Redis unterstützt den PUB/SUB-Standard zusammen mit dem Musterabgleich. Auf diese Weise kann Redis Chat-Räume, Echtzeit-Kommentar-Streams und Server-Interkommunikation mit hoher Leistung unterstützen. Sie können PUB/SUB auch zum Auslösen von Aktionen basierend auf veröffentlichten Ereignissen verwenden.

Amazon ElastiCache für Redis ist ein vollständig verwalteter, Redis-kompatibler In-Memory-Datenstruktur-Service.