Jak dystrybuowany jest memcache?

14

Mam memcache działający na 5 serwerach sieciowych, z których wszystkie znajdują się na liście hostów w php i które są zbalansowane z przodu. Więc skoro Memcached ma być dystrybuowany, klient php zdecyduje, do którego węzła zapisać pary klucz / wartość i będzie przechowywać zapis do późniejszego pobrania z tego samego węzła, prawda?

A może kod klienta php nie jest wystarczająco inteligentny, aby to zrobić, a raczej zapisuje dane na wszystkich serwerach, a następnie losowo wybiera jeden z puli, z którego można go odczytać?

Ale jeśli to zrobi; zapisz do wszystkich instancji na liście hostów / puli; jaki jest cel takiego narzędzia jak http://repcached.sourceforge.net/, które replikuje dane w celu uzyskania nadmiarowości.

Powód, dla którego pytam, jest taki, że działają na nim wszystkie serwery z równoważeniem obciążenia, a jeśli rzeczywiście zapisuje na wszystkich serwerach w puli, to wygląda na to, że pokonuje cel dystrybucji, więc powinienem po prostu zmusić php do pobrania z hosta na liście hostów, która jest localhost.

Mikrofon
źródło

Odpowiedzi:

16

Biblioteka Memecache odpowiada za wysłanie żądania do właściwego serwera. Biblioteka korzysta z podanej listy do wysyłania żądań do różnych serwerów, a memcache nie wykonuje replikacji.

Zobacz artykuł w dzienniku Linux . Wyjaśnia bardziej szczegółowo działanie memcache.

Sameer
źródło
Świetny artykuł, właśnie tego potrzebowałem, dzięki Sameer. Znalazłem też ten, który był niezwykle pomocny: code.google.com/p/memcached/wiki/NewConfiguringClient
Mike
Należy pamiętać, że memcache dzieli dane na wiele komputerów na podstawie klucza, co oznacza, że ​​dobrze jest rozłożyć pracę równomiernie na przestrzeń klucza, aby jedna maszyna nie została trafiona całym ruchem, jeśli wszystko za jeden klucz.
Lee Penkman