Има много видове кеширане. Специално за уеб сега се сещам 3:
1) Кеширане на целия сайт - тоест запазване на изходния HTML в някакъв файл примерно и зареждане от там. Почти никога не върши работа, защото при динамичните сайтове искаш да се обновява "live".
2) Кеширане на тежки заявки/резултати от тежки функции - обикновено това е най-практичното нещо, което можеш да направиш. Даже mysql има възможност да ти кешира заявките с 1-2 пипвания в конфигурацията и ако знаеш как да си пишеш заявките. Можеш да си направиш система и да ги кешира в APC, memcached и т.н. Идеята е повтарящи се на много страници неща (или често зареждана страница) да ги пазиш в паметта, до където достъпа е много бърз вместо всеки път БД да ги търси, което е доста по-бавно за големи БД.
3) Кеширане на файлове от браузъра - изключително полезно за css,js файлове и картинки, защото така браузъра не се налага всеки път за всеки файл да се допитва до сървъра.