> Если я правильно понял этот набор слов, предлагается вместо кэша
> nginx
> использовать кэш memcached'а, почему эта связка должна быть
> эффективнее
> чем один кэш nginx'a?
Нет, будет использоваться только кеш Nginx, но бекенды получат возможность получать по ключу, тело (body) кеша Nginx, по протоколу Memcached, если в Nginx, нет закешированого ответа или кеш требует ревалидации, тогда Nginx переводит этот GET запрос из протокола Memcached в GET запрос протокола HTTP, и отправляет его на бекенд, для получения нового ответа или статуса 304.
По сути Nginx сервер будет эмулировать работу Memcached сервера, тогда бекенды будут работать с Nginx как с Memcached.
Протокол HTTP не очень подходит для быстрого общения бекендов между собой внутри датацентра, HTTP слишком многословен, часто тело JSON ответа короче HTTP заголовков.
Когда бекенд делает запрос к другому бекенду через Nginx, его интересует код ответа, длина ответа и само тело ответа, все остальное это мусор который нужен только браузеру, по этому протокол Memcached подходит лучше, плюс этот протокол мультиплецируется :)
Такая связка во многом лучше чем работать с реальным сервером Memcached.
1. Nginx асинхроный и многопоточный, Memcached однопоточный и запросы обрабатывает последовательно.
2. Nginx имеет опции кеша cache_lock, use_stale, min_uses.
3. Nginx умеет ревалидировать кеш
4. Нет холодного старта и размер кеша не ограничен оперативной памятью.
5. Нет лишнего звена и зависимости от Memcached сервера
Ну как вам?