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