Предположим, что существует уникальный сервер, на котором запущены экземпляры nginx + php + mysql с некоторым оставшимся свободным ОЗУ. Самый простой способ использовать это ОЗУ для кэширования данных - просто увеличить буферные кеши экземпляров mysql. Базы данных уже используют LRU-подобные механизмы для обработки своих буферов.
Теперь, если вам нужно отодвинуть часть обработки от баз данных, то предварительное кэширование может быть вариантом. Прежде чем говорить о memcached / redis, кэш общей памяти, интегрированный с php, такой как APC, будет эффективен при условии, что рассматривается только один сервер (фактически более эффективный, чем redis / memcached).
Можно считать, что как memcached, так и redis выполняют удаленное кеширование (то есть, чтобы разделить кеш между различными узлами). Я бы не стал исключать Redis для этого: он может быть легко настроен для этой цели. И то, и другое позволит определить предел памяти и обрабатывать кеш с LRU-подобным поведением.
Однако я не стал бы использовать здесь couchbase, который является эластичным (то есть предполагается, что он будет использоваться на нескольких узлах) хранилищем ключей / значений NoSQL (то есть не кеш). Возможно, вы могли бы переместить некоторые данные из ваших экземпляров mysql в кластер couchbase, но использовать их только для кэширования - слишком сложная IMO.