Frage

Unter der Annahme einer MySQL-Datenspeicher, wenn würden Sie nicht auf Schienen in einem Ruby Memcached verwenden möchten app?

War es hilfreich?

Lösung

Memcache ist ein starker verteilten Cache, ist aber nicht schneller als lokaler Caching für einige Inhalte. Caching sollte Ihnen ermöglichen, um Engpässe zu vermeiden, die in der Regel von Datenbankanforderungen und Netzwerkanforderungen. Wenn Sie Ihre ganze Seite lokal als HTML-Cache kann, weil es nicht sehr oft ändern (ist nicht sehr dynamisch), dann können Sie Ihre Web-Server diese dienen viel schneller als memcache abfragt. Dies gilt insbesondere, wenn Ihr memcache Server, wie die meisten Memcached-Server sind auf unterschiedlichen Maschinen.

Kehrseite davon ist, dass ich manchmal memcache lokal anstelle von anderen Caching-Optionen verwenden, weil ich weiß, einen Tag werde ich es bewegen müssen, um einen eigenen Server aus.

Andere Tipps

Verwenden Sie keine Memcached, wenn Ihre Anwendung in der Lage ist, schnell alle Anfragen zu bearbeiten. Hinzufügen von Memcached ist extra psychischen Aufwand, wenn es um Codierung Ihrer Anwendung kommt, so tun Sie es nicht tun, wenn Sie es brauchen.

Die Skalierung der " ein Dünung Problem haben ".

Der Hauptvorteil von Memcached ist, dass es sich um eine verteilt Cache. Das heißt, Sie einmal erzeugen können, und dienen aus dem Cache über viele Server (aus diesem Grund Memcached erstellt wurde). Alle bisherigen Antworten scheinen dies zu ignorieren - es macht mich fragen, ob sie jemals eine hoch skalierbare App zu bauen hatte (das ist genau das, was für Memcached ist)

  

Danga Interactive entwickelt Memcached   zur Verbesserung der Geschwindigkeit   LiveJournal.com, eine Website, die war   dabei bereits 20 Millionen + dynamische Seite   Aufrufe pro Tag für 1 Million Benutzer mit    ein Bündel von webservers sowie ein Bündel von   Datenbankserver . memcached gesunken   die Datenbanklast auf fast nichts,   wodurch man schneller Ladezeiten für   Benutzer, eine bessere Ressourcennutzung,   und schnellerer Zugriff auf die Datenbanken auf   ein memcache verpassen.

(My bolding)

Die Antwort ist also:., Wenn Ihre Anwendung ist immer nur wahrscheinlich auf einem einzigen Server bereitgestellt werden

Wenn Sie jemals wahrscheinlich mehr als ein Server zu verwenden (für Skalierbarkeit und Redundanz) Memcached ist (fast) immer eine gute Idee.

Wenn Sie haben wollen, feinkörnige Kontrolle über die Dinge ablaufen. Von meinen Tests scheint Memcached nur eine Zeitauflösung von etwa einer Sekunde zu haben.

Zum Beispiel: Wenn Sie etwas sagen, in 1 Sekunde abläuft, könnte es bleiben um zwischen 1 und knapp über 2 Sekunden

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top