Ich bin ein bisschen neu in Memcache und Redis und ich versuche den Unterschied zwischen den beiden und dem, was jeder tatsächlich ist, zu verstehen.
Wie mir erklärt wurde, ist Memcache eine Datenbank-Caching-Lösung. Daten aus häufig ausgeführten Abfragen werden zwischengespeichert, um zu einem späteren Zeitpunkt wiederverwendet zu werden, wodurch die Antwortzeit verkürzt wird. Ist das eine genaue Beschreibung?
Was ist mit Redis? Funktioniert das ähnlich? Mit anderen Worten, speichert es Daten zwischen, die es von einer Backend-Datenbank empfängt? Ich lese immer wieder, dass Redis eine wichtige Wertspeicherlösung ist, die für mich eher nach einem Ersatz für einen Datenbankserver als nach einer Datenbank-Caching-Lösung klingt.
Jede Hilfe, um zu verstehen, was jeder ist und was die Unterschiede sind, wäre sehr dankbar.
Danke Brad
Memcached ist ein speicherinterner Schlüssel- / Wertspeicher. Redis kann auf diese Weise verwendet werden, ist aber viel viel mehr.
Möglichkeiten, wie Memcached und Redis ähnlich sind
Beide können Datenbankergebnisse oder alles andere, was Sie zwischenspeichern möchten, zwischenspeichern.
Beide können einfache Zeichenfolgenwerte für einen Schlüssel speichern. Eine frühere Antwort besagt, dass memcached flexibler ist, und dies ist falsch. Das Speichern von "was auch immer Sie wollen" in memcached umfasst das Aufnehmen von Objekten und das Serialisieren / Marshalling in Zeichenfolgen. Redis unterstützt dies ebenso gut. Redis ist im Allgemeinen flexibler, selbst wenn Sie Ihre serialisierten Objekte speichern, da der Standardmaximalwert viel größer ist (1 MB gegenüber 512 MB).
Beide speichern Werte im Arbeitsspeicher und sind extrem schnell und effizient. Oft wird die Netzwerkbandbreite oder die Speicher-E / A ohne hohe CPU-Auslastung überlastet. Beide sind hoch skalierbar. Für beide gibt es großartige Tools für die Verwaltung und Überwachung. Für beide gibt es kommerzielle Clusterlösungen. Ab Version 3.0 bietet redis integrierte Clustering-Unterstützung, die memcached nicht bietet.
Praktisch jeder Anwendungsfall für Memcached kann durch Redis gleich gut, manchmal sogar besser gelöst werden. Memcached ist eine fantastische Software, aber sowohl ihre Funktionen als auch ihre Stärken sind zu einer Teilmenge von Redis geworden.
Das Redis Superset
Wo sie sich unterscheiden, liegt in der großen Anzahl zusätzlicher Funktionen, die redis bietet, und den zusätzlichen Anwendungsfällen, die diese Funktionen ermöglichen.
Redis ist mehr als ein Schlüssel- / Wertspeicher. Es ist ein speicherinterner Datenstruktur-Server. Schlüsseln können einfache Zeichenfolgen zugewiesen werden, wie in Memcached, aber sie können auch Hashes, Listen, Sets oder sortierte Sets speichern. Diese zusätzlichen Datentypen sind effizient und optimiert. Viele Befehle nutzen sie , um Zugriffsmuster zu ermöglichen, die ein einfacher Schlüssel- / Wertspeicher nicht bietet.
Redis bietet standardmäßig integrierte und integrierte Persistenz . Dies bedeutet, dass redis standardmäßig eine echte Datenbank ist und kein einfacher flüchtiger Cache wie memcached. Ihre Daten werden beim Neustart angezeigt. Es gibt viele einfache Verwaltungsoptionen, mit denen Sie die Persistenz optimieren können, um Ihren Anwendungsfall optimal zu lösen, oder sie deaktivieren können, wenn Sie nur einen flüchtigen Cache benötigen.
Redis bietet Pub / Sub (Publish / Subscribe) an. Auf diese Weise können Sie Kanäle erstellen und von einem oder mehreren Clients abonniert werden. Dies ermöglicht einen effizienten Hochgeschwindigkeits-Echtzeit-Kommunikationsmechanismus. Dies kann eine großartige Lösung für die Kommunikation zwischen Prozessen, Anwendungen oder Servern sein.
Redis bietet Unterstützung für Lua-Skripte . Auf diese Weise können Sie alle möglichen neuen Dinge tun. Ein wichtiges Beispiel wäre die atomare Ausführung mehrerer abhängiger Redis-Befehle und ein einziger Aufruf von Redis. Lua-Skripte sind einfach zu erlernen und die Skripte werden effizient und atomar ausgeführt.
Fazit
Sofern Ihr Projekt nicht bereits memcached verwendet oder Ihre Organisation erhebliche Investitionen in memcached tätigt, sollten Sie es nicht verwenden. Redis Rivalen haben sich in ihrem eigenen Spiel eingemischt und ermöglichen eine ganze Welt neuer. Auch wenn Ihr Problem von beiden Tools gleichermaßen gelöst werden kann, wählen Sie das Tool, das mehr Flexibilität für Probleme bietet, die Sie noch nicht vorhersehen können: Redis. Sie wählen auch das Tool aus, das aktiver entwickelt und gewartet wird und das schneller verbessert wird. Memcached geht nirgendwo hin und sollte es auch nicht, aber es ist schwierig, dafür einzutreten, dass es in etwas Neuem verwendet wird, es sei denn, Sie verfügen über erhebliche Kenntnisse oder Infrastrukturinvestitionen in memcached.
Wenn Sie bereits memcached verwenden, kann der Wechsel zu redis eine Menge Arbeit für wenig bis gar keinen Gewinn sein. Bewerten Sie redis genau und entscheiden Sie für Ihre Situation, ob die Kosten für den Wechsel die Vorteile überwiegen. Wenn dies der Fall ist, bleiben Sie bei memcached. Es ist immer noch eine großartige, stabile, gehärtete Software.
quelle