페이지를 캐시하려면 memcached를 사용하지 말고 Varnish을 사용하십시오. 그러나 메모리를 많이 사용하지 않는 좋은 기회가 있습니다. 캐싱 페이지는 계산 및 데이터베이스 작업을 위해 메모리를 교환하지만 페이지 당 많은 메모리가 필요하므로 단일 페이지를 생성하는 데 필요한 계산 및 데이터베이스 작업이 많은 경우 (또는 페이지가 매우 작을 경우에 가장 적합합니다 !). 또한 페이지에서 사용자 별 사용자 지정을 사용하려는 경우 (예 : 장바구니에있는 항목 수 표시) 페이지 캐싱이 효과적이지 않거나 가능할 수도 있습니다. 최소한 진실로 털이 많은 속임수에 빠지기 만하면 (가장자리 쪽 포함, 누구?).
페이지를 캐시하지 않고 앱이 단일 컴퓨터에 있으면 memcached 또는 유사한 점을 사용할 필요가 없습니다. 이와 같은 캐시 서버의 요점은 파일 서버가 디스크를 공유하는 방식과 같이 기본적으로 메모리 서버와 같이 한 시스템의 메모리를 다른 시스템의 캐시로 작동시키는 것입니다. 단일 시스템에서는 모든 메모리를 Java에 제공하고 힙에 오브젝트를 캐시 할 수 있습니다.
오브젝트 관계형 맵퍼를 사용하고 있습니까? 그렇다면 두 번째 수준의 캐시를 지원하는지 확인하십시오. 빅 3 구현 (Hibernate, OpenJPA 및 EclipseLink)은 모두 메모리 내 캐시를 지원합니다. 자신을 캐싱 한 경우보다 훨씬 더 나은 작업을 수행 할 가능성이 높습니다.
그러나 매퍼를 사용하지 않는 경우에는 캐시를 직접 수행 할 수밖에 없습니다. LinkedHashMap에는 LRU 캐시를 구현하기위한 확장 점이 있으며, HashMap과 함께 사람들이 좋아하는 SoftReference가 있습니다. 거기에 아마도 캐시 구현이 있습니다. 다운로드하고 사용할 수 있습니다. Apache Commons 라이브러리에 무언가가 없으면 놀라실 것입니다.
귀하의 후반 질문은 너무 광범위하고 많은 요인에 따라 달라집니다. – cherouvim