Redis vs. Memcached

VergleichsindexZwischengespeichertSage es noch einmal
Was istMemcached ist ein In-Memory-Key-Value-Speicher, der ursprünglich für Caching-Zwecke gedacht war.Redis ist ein In-Memory-Datenstrukturspeicher, der als Datenbank, Cache und Nachrichtenbroker verwendet wird.
BeschreibungMemcacheD ist einfach, einfach gestaltet und dennoch leistungsstark. Sein einfaches Design fördert eine schnelle Bereitstellung, erleichtert die Übertreibung und löst viele Probleme im Zusammenhang mit großen Datencaches. Es verfügt über integrierte APIs, die eine sehr große Hash-Tabelle bereitstellen, die auf mehrere Computer verteilt ist, und verwendet eine interne Speicherverwaltung, um mehr Effizienz zu erzielen. MemcacheD unterstützt nur den Datentyp String, der sich ideal zum Speichern von schreibgeschützten Daten eignet. Memcached ist ein flüchtiger In-Memory-Schlüsselwert-Ursprung. Es ist multithreaded und wird hauptsächlich zum Zwischenspeichern von Objekten verwendet.Redis ist ein Open-Source-In-Memory-Datenstrukturspeicher, der auch als Datenbank sowie zum Caching verwendet werden kann. Es unterstützt fast alle Arten von Datenstrukturen wie Strings, Hashes, Listen, Mengen, sortierte Mengen mit Bereichsabfragen, Bitmaps, Hyperloglogs und Geoindizes durch Radiusabfragen. Redis kann auch für Messaging-Systeme verwendet werden, die als Pub/Sub verwendet werden.
Primäres DatenbankmodellMemcached folgt dem Key-Value-Store-Datenbankmodell.Redis folgt auch dem Key-Value-Store-Datenbankmodell.
Entwickelt vonMemcached wird von Danga Interactive entwickelt.Redis wird von Salvatore Sanfilippo entwickelt.
ErstveröffentlichungMemcached wurde ursprünglich im Jahr 2003 veröffentlicht.Redis wurde ursprünglich im Jahr 2009 veröffentlicht.
Aktuelle VersionDie aktuelle Version von Memcached ist 1.5.1, veröffentlicht im August 2017.Die aktuelle Version von Redis ist 4.0.2, veröffentlicht im September 2017.
LizenzMemcached ist kostenlos und Open Source.Redis ist ebenfalls kostenlos und Open Source.
CloudbasiertNeinNein
ImplementierungsspracheMemcached ist in C-Sprache implementiert.Redis ist auch in C-Sprache implementiert.
Server-BetriebssystemeFreeBSD Linux OS X Unix WindowsBSD Linux OS X Windows
Unterstützte Programmiersprachen.Net, C, C++, ColdFusion, Erlang, Java, Lisp, Lua, OCaml, Perl, PHP, Python, RubyC,C#,C++, Clojure, Crystal, D, Dart, Elixir, Erlang, Fancy, Go, Haskell, Haxe, Java, JavaScript (Node.js), Lisp, Lua, MatLab, Objective-C, OCaml info, Perl, PHP, Prolog, Pure Data, Python, R, Rebol, Ruby, Rust, Scala, Schema, Smalltalk, Tcl
Serverseitige SkripteNeinnehmen
Löst ausNeinNein
PartitionierungsmethodenKeinerScherben
ReplikationsmethodenKeinerMaster-Slave-Replikation
Karte verkleinernNeinNein
Fremde SchlüsselNeinNein
TransaktionskonzepteNeinOptimistisches Sperren, atomare Ausführung von Befehlsblöcken und Skripten
ParallelitätJawohlJawohl
HaltbarkeitNeinJawohl
BenutzerkonzepteJawohlEinfache passwortbasierte Zugangskontrolle
InstallationMemcached ist etwas kompliziert zu installieren und auszuführen.Die Installation von Redis ist so viel einfacher. Keine Abhängigkeiten erforderlich.
SpeichernutzungMemcacheD ist speichereffizienter als Redis, da es vergleichsweise weniger Speicherressourcen für Metadaten verbraucht.Redis ist speichereffizienter, erst nachdem Sie Redis-Hashes verwendet haben.
BeharrlichkeitMemcached verwendet keine persistenten Daten. Bei der Verwendung von Memcached können bei einem Neustart Daten verloren gehen, und die Neuerstellung des Cache ist ein kostspieliger Prozess.Redis kann mit persistenten Daten umgehen. Standardmäßig synchronisiert es mindestens alle 2 Sekunden Daten mit der Festplatte und bietet optionale und einstellbare Datenpersistenz, um den Cache nach einem geplanten Herunterfahren oder einem unbeabsichtigten Ausfall zu booten. Während wir dazu neigen, die Daten in Caches als flüchtig und vorübergehend zu betrachten, kann das Speichern von Daten auf der Festplatte in Caching-Szenarien sehr wertvoll sein.
ReproduzierenMemcached unterstützt keine Replikation.Redis unterstützt die Master-Slave-Replikation.
SpeichertypMemcacheD speichert Variablen in seinem Speicher und ruft alle Informationen direkt aus dem Serverspeicher ab, anstatt erneut auf die Datenbank zuzugreifen.Redis ist wie eine Datenbank, die sich im Speicher befindet. Es führt (liest und schreibt) ein Schlüssel/Wert-Paar aus seiner Datenbank aus, um die Ergebnismenge zurückzugeben. Aus diesem Grund wird es von Entwicklern für Echtzeitmetriken und -analysen verwendet.
Ausführungsgeschwindigkeit und LeistungMemcacheD eignet sich sehr gut für stark frequentierte Websites. Es kann viele Informationen gleichzeitig lesen und Ihnen in einer hervorragenden Reaktionszeit zurückgeben.Redis kann weder hohen Lese- noch hohen Schreibverkehr bewältigen.
DatenstrukturMemcacheD verwendet in seiner Datenstruktur nur Zeichenfolgen und Ganzzahlen. Alles, was Sie speichern, kann also entweder ein String oder eine Ganzzahl sein. Es ist kompliziert, weil Sie bei ganzen Zahlen nur Daten manipulieren können, indem Sie sie addieren oder subtrahieren. Wenn Sie Arrays oder Objekte speichern müssen, müssen Sie sie zuerst serialisieren und dann speichern. Um sie zurückzulesen, müssen Sie die Serialisierung aufheben.Redis verfügt über stärkere Datenstrukturen, die nicht nur Ganzzahlen, sondern auch binärsichere Zeichenfolgen, Listen binärsicherer Zeichenfolgen, Sätze binärsicherer Zeichenfolgen und sortierte Sätze verarbeiten können.
SchlüssellängeDie Schlüssellänge von Memcached beträgt maximal 250 Bytes.Die Schlüssellänge von Redis beträgt maximal 2 GB.

osky