Il modo in cui vorrei farlo sarebbe avere 1 server come server DB con mysql in esecuzione su di esso. Tutti i miei dati su memcached, che possono estendersi su più server e i miei clienti con un semplice "se non su memcached, leggi da db, metterlo su memcached e restituire".
Memcached è molto semplice da scalare rispetto a un DB. Un ridimensionamento db richiede molto sforzo amministrativo. È un dolore per farlo bene e lavorare. Quindi scelgo memcached. Infatti, ho dei server memcached extra, solo per gestire i server di downtime (se qualcuno dei miei memcached).
I miei dati vengono letti principalmente e poche sono le scritture. E quando avvengono le scritture, spingo anche i dati alla memcached. Tutto sommato funziona meglio per me, codice, amministrazione, fallback, failover, loadbalancing way. Tutti vincono. Hai solo bisogno di codificare un "po '" un po' meglio.
Il cluster mysql è più allettante, in quanto sembra più facile codificarlo, distribuirlo, mantenerlo e continuare a funzionare. Ricorda che mysql è basato su hard disk, e memcached è basato sulla memoria, quindi per sua natura è molto più veloce (10 volte almeno). E dal momento che prende tutto il carico di lettura dal db, la tua configurazione di db può essere REALMENTE semplice.
Spero davvero che qualcuno punti a un argomento contrario, mi piacerebbe sentirlo.