Ich habe in den letzten Wochen ziemlich viel mit memcached gearbeitet und gerade von Redis erfahren. Als ich diesen Teil ihrer Readme las, bekam ich plötzlich ein warmes, gemütliches Gefühl im Magen:
Redis kann als Memcached für Steroide verwendet werden, da es so schnell wie Memcached ist, aber eine Reihe weiterer Funktionen bietet. Wie memcached unterstützt Redis auch das Festlegen von Zeitlimits für Schlüssel, sodass dieser Schlüssel automatisch entfernt wird, wenn eine bestimmte Zeit vergeht.
Das klingt erstaunlich. Ich hatte diese Seite auch mit Benchmarks gefunden: http://www.ruturaj.net/redis-memcached-tokyo-tyrant-mysql-comparison
Also, ehrlich - Ist Memcache wirklich der alte Dinousaur, der aus Performance-Sicht im Vergleich zu diesem Newcomer namens Redis eine schlechte Wahl ist?
Ich habe vorher noch nicht viel über Redis gehört, daher der Ansatz für meine Frage!
quelle
Antworten:
Memcache ist immer noch ein ausgezeichnetes Werkzeug und SEHR zuverlässig.
Anstatt dieses Problem aus der Perspektive zu betrachten, wer im Bereich von <100 ms schneller ist, sollten Sie sich die Leistung pro "Klasse" der Software ansehen.
quelle
Kommt darauf an, was du brauchst, im Allgemeinen denke ich, dass:
Ohne einen Anwendungsfall ist es im Moment schwierig, den richtigen auszuwählen, aber ich denke, dass Redis für viele Dinge Sinn macht, da Sie, selbst wenn Sie ihn nicht als Datenbank verwenden möchten, viel leistungsfähiger sind, wenn Sie viel leistungsfähiger sind. nicht nur Caching, sondern auch Messaging, Ranking und so weiter.
Ps natürlich könnte ich voreingenommen sein, da ich der Hauptentwickler des Redis-Projekts bin.
quelle
Redis
Funktionen bietet dann weitaus mehr Funktionen.Redis
ist auch viel einfacher. Keine Abhängigkeiten erforderlich;Redis
ist ebenfalls besser.memcached
ist ein bisschen schneller alsRedis
. Es berührt die Disc überhaupt nicht.Redis
ein besseres Produkt alsmemcached
.quelle
Was memcached macht, was Redis nicht macht, ist die am wenigsten verwendete Räumung von Werten aus dem Cache. Mit memcached können Sie sicher so viele Werte festlegen, wie Sie möchten. Wenn der Speicher überläuft, werden diejenigen gelöscht, die Sie kürzlich nicht verwendet haben. Mit Redis können Sie dies nur annähern, indem Sie für alles eine Zeitüberschreitung festlegen. Wenn Speicher freigegeben werden muss, werden drei zufällige Schlüssel angezeigt und derjenige gelöscht, der dem Ablauf am nächsten kommt.
Das ist der Hauptunterschied, wenn Sie es nur als Cache verwenden.
quelle
Vielleicht möchten Sie sich auch Membase ansehen.
http://www.northscale.com/products/membase_server.html
Ich habe es nicht verwendet, aber es scheint Redis insofern ähnlich zu sein, als es ein speicherzentrierter KV-Speicher mit Persistenz ist. Die Hauptunterschiede zu dem, was ich sehen kann, sind:
Redis verfügt über eine einzelne Ebene der Datenverlagerung auf die Festplatte (VM), die auf einem Hybridalgorithmus basiert, der sowohl die LRU als auch die Größe des Objekts berücksichtigt.
Membase verwendet das Memcached Wire-Protokoll - nützlich als Upgrade-Pfad für vorhandene Anwendungen
Die Auswahl hängt möglicherweise davon ab, inwieweit Ihre Anwendung die zusätzlichen Datenmanipulationsfunktionen in Redis nutzen kann.
quelle
Hazelcast unterstützt das zwischengespeicherte Protokoll nativ
https://web.archive.org/web/20140601010929/http://hazelcast.org/docs/latest/manual/html-single/hazelcast-documentation.html
und ist somit eine moderne Alternative zu memcached. Sie sollten alle Lösungen ausprobieren, um herauszufinden, was für Sie am besten funktioniert.
quelle