- Лак перед веб-сервером; он работает как обратный http-прокси, который кэширует.
- Вы можете использовать оба.
- В основном пишите - Лак должен будет очистить затронутые страницы. Это приведет к дополнительным расходам и небольшим преимуществам для измененных страниц.
- Чаще всего читайте - Лак, вероятно, покроет большую часть.
- Аналогично для чтения и записи - Varnish будет обслуживать многие страницы за вас, Memcache предоставит информацию для страниц, которые содержат смесь известных и новых данных, позволяя вам создавать страницы быстрее.
Пример, который может применяться к stackoverflow.com: добавление этого комментария лишает законной силы кэш страницы, поэтому эту страницу придется очистить от Varnish (а также от страницы моего профиля, которая, вероятно, не стоит начинать кэширование с самого начала. аннулировать все затронутые страницы может быть немного проблемой). Все комментарии, тем не менее, все еще находятся в Memcache, поэтому базе данных остается только написать этот комментарий. Больше ничего не нужно делать с помощью базы данных для генерации страницы. Все комментарии извлекаются Memcache, и страница перечитывается до тех пор, пока кто-то не повлияет на нее снова (возможно, проголосовав за мой ответ). Опять же, база данных записывает результаты голосования, все остальные данные извлекаются из Memcache, и жизнь идет быстро.
Memcache спасает вашу БД от большой работы по чтению, Varnish спасает ваш динамический веб-сервер от нагрузки на процессор, заставляя вас генерировать страницы реже (и немного уменьшает нагрузку на БД, если не для Memcache).