Если вы собираетесь кэшировать страницы, не используйте memcached, используйте Varnish .Тем не менее, есть хороший шанс, что использование памяти не очень удачное.Кэширование страниц торгует памятью для вычислений и работы с базой данных, но это стоит довольно много памяти на страницу, поэтому лучше всего в тех случаях, когда работа с вычислениями и базами данных, необходимая для создания одной страницы, составляет много (или страницы очень маленькие!).Кроме того, учтите, что кэширование страниц не будет эффективным или даже невозможным, если вы хотите использовать индивидуальную настройку на своих страницах (например, отображение количества товаров в корзине).По крайней мере, не вдаваясь в некоторые по-настоящему волосатые махинации (включая крайние стороны?)memcached или похожий.Смысл серверов кеша в том, чтобы заставить память на одной машине работать как кеш для другой - как файловый сервер разделяет диск, по сути, они являются серверами памяти.На одной машине вы могли бы также отдать всю память Java и кэшировать объекты в куче.
Используете ли вы объектно-реляционный маппер?Если так, посмотрите, есть ли у него какая-либо поддержка кеша второго уровня.Все три большие реализации (Hibernate, OpenJPA и EclipseLink) поддерживают кэш-память в памяти.Скорее всего, они справятся с задачей лучше, чем вы, если бы вы сделали кеширование самостоятельно.
Но если вы не используете маппер, у вас нет выбора, кроме как выполнить кеширование самостоятельно.В LinkedHashMap есть точки расширения для построения LRU-кешей, и, конечно же, есть любимая программа SoftReference в сочетании с HashMap.Кроме того, вероятно, есть реализации кеша, которые вы можете загрузить и использовать - я был бы шокирован, если бы в библиотеках Apache Commons ничего не было.