1 데이터베이스 캐시
일반적으로 데이터베이스는 쿼리 결과 캐싱을 지원하며 캐시의 효율성을 보장하는 복잡한 메커니즘을 가지고 있습니다. MySQL, Oracle과 같은 데이터베이스의 경우 합리적인 캐시 구성을 통한 시스템 성능 향상은 상당히 중요합니다.
2 데이터 연결 기반 캐시.
PHP의 ADODB, J2EE의 연결 드라이버, 심지어 Hibernate와 같은 ORM도 커넥터로 간주됩니다. 여기서 효과적인 캐싱 메커니즘은 그다지 강력하지 않습니다. 이 단계를 사용하여 캐싱을 구현하는 가장 큰 장점 중 하나는 데이터 검색 방식을 변경하지 않고 유지할 수 있다는 것입니다. 예를 들어 나는 전화한다.
$db->CacheGetAll(“select * from table”); 문은 변경할 필요가 없으며 캐싱을 투명하게 구현할 수 있습니다. 이는 주로 변경되지 않는 일부 데이터에 적용됩니다. 예를 들어 일부 데이터 사전은 자주 변경되지 않습니다.
3 시스템 수준 캐시
시스템 내 Cache 라이브러리를 통해 필요한 데이터를 직접 캐싱할 수 있습니다. 예를 들어 나무 그루터기 메뉴를 생성하면 리소스가 많이 소모되므로 생성된 트리를 캐싱할 수 있습니다. 이 방법의 단점은 트리의 일부가 업데이트될 때 캐시 내용을 수동으로 업데이트해야 한다는 것입니다.
사용되는 캐싱 라이브러리는 다양한 캐싱 방법을 가질 수 있으며, 일부는 콘텐츠를 하드 디스크에 저장하고 일부는 메모리에 저장하여 캐시하도록 하면 속도가 많이 향상될 수 있습니다.
4 페이지 수준 캐싱
이는 콘텐츠 관리 시스템에서 가장 일반적으로 사용됩니다. 즉, 정적 페이지를 생성하는 것입니다. 캐시 제어 메커니즘은 여기에서 가장 복잡하며 일반적으로 만병통치약은 없으며 특정 상황에 대한 구체적인 분석만 있습니다.
일반적으로 정적 리프를 생성할 때 정적 리프 검색 속도를 보장하기 위해 오래되었거나 거의 액세스하지 않는 리프를 삭제하는 메커니즘이 필요합니다.
5 미리 컴파일된 리프를 사용하고 FastCGI로 로드하는 방법
PHP의 경우 zend와 같은 컴파일 엔진을 사용할 수 있으며 JSP 자체의 경우 사전 컴파일됩니다. FastCGI의 원칙은 스크립트가 실행될 때마다 스크립트를 읽지 않고 미리 로드하는 것입니다. 이는 JSP가 서블릿에 미리 프로그래밍된 후 로드되는 것과 같습니다.
6개의 전면 캐시
Squid를 웹 서버의 프런트 엔드 캐시로 사용할 수 있습니다.
7 클러스터 만들기
데이터베이스를 클러스터링하고, 웹 서버를 클러스터링하고, Squild 프런트엔드 시스템을 클러스터링합니다.
초보자의 경우 프로그램이 종료되면 먼저 코드에 오류가 있는지, 메모리 누수가 있는지 확인해야 합니다. 문제가 없으면 일반적으로 데이터베이스 연결에 있습니다.
위의 캐싱 방식을 종합적으로 적용하면 부하가 높은 웹 애플리케이션 개발이 용이해진다.
http://blog.csdn.net/danny_xcz/archive/2006/10/13/1332555.aspx