Redis

Redis ist ein Speicher, der Daten im Arbeitsspeicher statt auf der Festplatte hält, damit dieselbe teure Frage beim zweiten Mal sofort beantwortet wird.

Auch bekannt als In-Memory-Cache Key-Value-Speicher Cache-Server

Definition

Redis ist ein kleiner, sehr schneller Speicher neben Ihrer Website, der Dinge im Arbeitsspeicher hält. Der Arbeitsspeicher ist die Fläche, auf der ein Rechner arbeitet, solange er läuft, und daraus zu lesen ist tausendmal schneller als von einer Festplatte. In diesem Abstand steckt der ganze Sinn von Redis.

Denken Sie an eine gut besuchte Shopseite, auf der jeder Besucher dieselbe Frage stellt, nämlich was heute im Angebot ist. Ohne Redis geht die Seite jedes Mal zur Hauptdatenbank und rechnet die Antwort neu aus, hundertfach pro Minute, für dasselbe Ergebnis. Mit Redis wird sie einmal berechnet und in der nächsten Minute als Kopie an alle anderen ausgegeben, sodass die Seite schneller kommt. Die Datenbank bleibt dann frei für die Arbeit, die nur sie erledigen kann.

Drei weitere Aufgaben erledigt Redis gut, zuerst merkt es sich, wer angemeldet ist, damit niemand bei jedem Klick sein Passwort eintippt. Es hält außerdem eine Warteschlange für Aufgaben, etwa die Rechnungsmail, die nach dem Verkauf hinausgeht und nicht, während der Kunde an der Kasse wartet. Und es zählt Vorgänge in kurzen Zeitfenstern, weshalb ein Anmeldeformular fünf Versuche pro Minute erlaubt und den sechsten ablehnt. Dieser letzte Punkt ist billige Sicherheitsarbeit, die das meiste Passwortraten beendet, bevor es beginnt.

Nun der Teil, den Teams auf die harte Tour lernen, denn beim Neustart ist der Arbeitsspeicher leer. Redis kann eine Kopie auf die Festplatte schreiben, tut das aber nach Zeitplan, sodass ein Neustart zur falschen Sekunde die letzten Sekunden verliert. Für eine zwischengespeicherte Seite ist das egal, für eine Bestellung nicht, weshalb nichts wichtig sein darf, dessen einzige Kopie in Redis liegt. Die zweite Überraschung ist, dass Redis ab Werk den gesamten Arbeitsspeicher belegen darf, sodass alles auf diesem Server leidet, wenn der Rechner nichts mehr hat. Linkysoft setzt dieses Limit am ersten Tag jedes Projekts, fragen Sie also Ihren Anbieter nach dem Limit und danach, was beim Erreichen weggeworfen wird.

Wenn Linkysoft eine Webanwendung baut, kommt Redis meist in der zweiten Woche und nicht in der ersten. Man kann keine Antwort zwischenspeichern, bevor man weiß, welche am häufigsten verlangt werden, also messen wir zuerst und setzen es dort ein, wohin die Messung zeigt. In einem Ladensystem wie Storek sind es fast immer dieselben drei. Es sind die Kategorieseite, die Vorschläge unter dem Suchfeld und die Zahl der Artikel im Warenkorb in der Ecke jeder Ansicht.

Fragen zu Redis

Ist Redis eine Datenbank?
Technisch ja, aber nicht die, in der Ihre einzige Kopie liegt. Sehen Sie es als schnelles Regal neben dem echten Lager, gefüllt mit Kopien der häufigsten Anfragen.
Verliert Redis Daten beim Neustart des Servers?
Möglich. Alles liegt im Arbeitsspeicher und wird nur nach Zeitplan auf die Platte geschrieben, ein Neustart zur falschen Sekunde verliert also die letzten Sekunden. Eine Bestellung darf nie nur dort stehen.
Brauche ich Redis für eine kleine Website?
Anfangs meist nicht. Eine Seite mit ein paar hundert Besuchern am Tag wartet nicht auf die Datenbank. Fügen Sie es hinzu, wenn Seiten unter Last langsam werden, und messen Sie vorher.
Ist Redis kostenlos?
Sie können es kostenlos selbst installieren und betreiben. Eine verwaltete Variante wird gemietet und nach reserviertem Arbeitsspeicher berechnet, nicht nach tatsächlicher Nutzung.
Was ist der Unterschied zwischen Redis und Memcached?
Beide halten Daten im Arbeitsspeicher. Memcached speichert nur einfache Werte. Redis kann zusätzlich Listen, Zähler und Warteschlangen und eine Kopie auf die Platte schreiben, deshalb wählen es die meisten neuen Projekte.

Immer noch unsicher, was das für Ihr Projekt bedeutet?

Sagen Sie uns, was Sie bauen, und wir antworten in klarer Sprache.