Je teurer es ist, Daten auszulesen (Speicher, Datenbank, Festplatte, remote-host), desto wichtiger ist Caching, zumindest wenn auf die Daten mehrfach zugegriffen werden soll. (Und das ist regelmäßig der Fall)
Stellt sich die Frage: Was nimmt man zum Cachen. Ganz bestimmt keine Eigenbaulösung, denn es gibt einiges an OpenSource Tools oder Produkten in deren Einsatz sich eine Investition lohnt.
Im Java Bereich dominieren JCS und ehcache, beide implementieren die JCache API (JSR107).
Ich habe noch keine genauere Evaluation durchgeführt, aber ein paar Dinge gefunden, die bei der Bewertung helfen könnten.
JCS vs. Ehcache (hätte auch Fedehandschuh heißen können)
Comparative Cache Performance Numbers (2006, cache4j-performance-tester)

Aber ganz besonders interessant finde ich den Vergleich von ehcache mit memcached. Memcached ist besonders im PHP und Perl Umfeld sehr beliebt, um die Datenbanklaste bei Webseiten zu verringern, die einen hohen Lese- vs. Schreibanteil haben. (Wikipedia z.B.)

Als echter Newcomer wäre dann noch Terracotta zu sehen, hier ist der Ansatz aber auch gänzlich anders. Werden bei den anderen Cache Lösungen allgemeine Objekt oder Datencaches implementiert, bietet Terracotta eine TreeMap Implementierung, die als backing einen verteilten Cache verwendet.