Я думаю, что лучше пойти с memcache.Не только задержки во время репликации создают проблемы, но и вашим N-серверам не нужно огромное пространство на жестком диске (если мы предположим, что у вас огромная база данных).С другой стороны, вы не добьетесь избыточности.Если ваш главный сервер базы данных умрет, у вас не будет никого, кто занял его место.Итак, подчиненные серверы необходимы для этих целей, но, скорее всего, вам не нужно N из них, и если вы можете достичь масштабируемости с помощью memcache, то нет причин не делать этого (я имею в виду, если вы разрабатывали приложения, которыезнать, как его использовать).Исходя из моего опыта, всегда легче поддерживать экземпляр memcached, чем подчиненный сервер MySQL (и, вероятно, то же самое с другими механизмами баз данных).
Конечно, все это имеет смысл, если вы разрабатывали приложения, которые знают, как использовать memcache.Всегда проще просто добавить еще одну строку подключения в вашу конфигурацию и использовать ее только для чтения с какого-либо сервера базы данных так же, как вы используете ее с master.Использование данных из какого-либо другого источника данных (например, memcache) предполагает, что вы создали свое приложение таким образом.