Varnish - это программа для кеширования, простая и понятная.Редис нет.Redis - это база данных, которая использует систему ключ / значение для хранения данных.Redis чаще всего используется в качестве системы кеширования для дополнения mysql в некоторых случаях (например, для хранения сеансов).Memcached похож на redis, но я не могу комментировать, потому что у меня нет опыта работы с Memcached.Итак, для вашего первого вопроса, да Memcached и Redis требуют изменения кода.
2-й - я не знаю.Если вы просто хотите кэшировать свой сайт, то Varnish будет вашим самым быстрым вариантом.Redis и Memcached потребуют намного больше работы.
Надеюсь, это помогло:)