- Varnish ist dem Webserver vorgeschaltet; es arbeitet als Reverse-HTTP-Proxy, der zwischenspeichert.
- Sie können beides verwenden.
- Hauptsächlich schreiben - Varnish muss die betroffenen Seiten bereinigen. Dies führt zu einem Mehraufwand und wenig Nutzen für geänderte Seiten.
- Hauptsächlich gelesen - Lack wird wahrscheinlich das meiste abdecken.
- Ähnliches Lesen und Schreiben - Varnish wird einen Großteil der Seiten für Sie bereitstellen, Memcache liefert Informationen für Seiten, die eine Mischung aus bekannten und neuen Daten enthalten, so dass Sie Seiten schneller generieren können.
Ein Beispiel, das auf stackoverflow.com zutreffen könnte: Das Hinzufügen dieses Kommentars hat den Seiten-Cache ungültig gemacht, so dass diese Seite aus Varnish gelöscht werden muss (und auch meine Profilseite, die es wahrscheinlich nicht wert ist, gecacht zu werden. Die Erinnerung an die Ungültigmachung aller betroffenen Seiten könnte ein kleines Problem darstellen). Alle Kommentare befinden sich jedoch weiterhin im Memcache, so dass die Datenbank nur diesen Kommentar schreiben muss. Die Datenbank braucht nichts weiter zu tun, um die Seite zu erzeugen. Alle Kommentare werden von Memcache abgerufen, und die Seite wird zwischengespeichert, bis jemand sie erneut beeinflusst (vielleicht indem er für meine Antwort stimmt). Wieder schreibt die Datenbank die Abstimmung, alle anderen Daten werden aus dem Memcache gezogen, und das Leben ist schnell.
Memcache erspart Ihrer DB eine Menge Lesearbeit, Varnish erspart Ihrem dynamischen Webserver CPU-Last, indem es dafür sorgt, dass Sie weniger häufig Seiten generieren (und entlastet die DB auch ein wenig, wenn Memcache nicht wäre).