Wie ist memcache verteilt?


14

Ich habe Memcache auf 5 Webservern, die alle auf der Host-Liste in PHP sind und die auf dem Front-End lastausgeglichen sind. Da memcached also verteilt werden soll, entscheidet der PHP-Client, auf welchen Knoten Schlüssel / Wert-Paare geschrieben werden sollen, und führt eine Aufzeichnung für den späteren Abruf von demselben Knoten, richtig?

Oder ist der PHP-Client-Code nicht schlau genug, um das zu tun, sondern schreibt die Daten auf alle Server und stellt sie dann nach dem Zufallsprinzip aus dem Pool zur Verfügung, aus dem sie gelesen werden können?

Aber wenn es das tut; schreibe in alle Instanzen in der Hostliste / im Pool; Wozu dient dann ein Tool wie http://repcached.sourceforge.net/, das Daten aus Redundanzgründen repliziert?

Der Grund, den ich frage, ist, dass es auf allen Servern mit Lastenausgleich ausgeführt wird und wenn es tatsächlich auf alle Server im Pool schreibt, scheint es, als würde es den Zweck der Verteilung zunichte machen, und ich sollte einfach PHP zwingen, vom Host abzurufen in der Hostliste ist das localhost.

Antworten:


16

Die Memecache-Bibliothek ist dafür verantwortlich, die Anforderung an den richtigen Server zu senden. Die Bibliothek verwendet die von Ihnen bereitgestellte Liste, um Anforderungen an verschiedene Server zu senden, und memcache repliziert nicht.

Lesen Sie den Artikel im Linux-Journal . Es wird detaillierter erklärt, wie Memcache funktioniert.


Toller Artikel genau das, was ich brauchte, danke Sameer. Ich fand auch dieses, das äußerst hilfreich war: code.google.com/p/memcached/wiki/NewConfiguringClient
Mike

Beachten Sie, dass memcache die Daten basierend auf dem Schlüssel auf mehrere Computer verteilt. Dies bedeutet, dass es hilfreich sein kann, die Arbeit gleichmäßig über den Schlüsselraum zu verteilen, damit ein Computer nicht mit dem gesamten Datenverkehr betroffen ist, wenn nur ein Schlüssel vorhanden ist.
Lee Penkman
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.