여기에 언급된 데이터 캐시는 데이터베이스 쿼리 PHP 캐시 메커니즘을 의미합니다. 페이지에 액세스할 때마다 해당 캐시 데이터가 존재하는지 여부를 먼저 감지하고, 데이터베이스에 연결하여 데이터를 얻습니다. 쿼리 결과를 변환하여 파일에 저장한 후 나중에 동일한 쿼리 결과를 캐시 테이블이나 파일에서 직접 얻을 수 있습니다.
1. 범용 캐싱 기술:
데이터 캐싱: 여기에 언급된 데이터 캐시는 데이터베이스 쿼리 PHP 캐싱 메커니즘을 의미하며, 각 액세스 페이지에 들어가면 해당 캐시 데이터가 있는지 먼저 감지합니다. 존재하지 않으면 데이터베이스에 연결하여 데이터를 얻은 다음 쿼리 결과를 직렬화하여 파일에 저장합니다. 쿼리 결과는 캐시 테이블이나 파일에서 직접 가져옵니다. 가장 널리 사용되는 예는 Discuz의 검색 기능으로, 다음에 동일한 키워드를 검색할 때 결과 ID를 테이블에 캐시하고 캐시 테이블을 먼저 검색하는 기능입니다. 일반적인 방법으로, 여러 테이블이 연관되어 있는 경우 배열을 생성하고 첨부된 테이블의 내용을 기본 테이블의 필드에 저장합니다. Brothers PHP
는 필요할 때 배열을 분해한다는 점을 상기시킵니다. 하나의 테이블만 읽는 것의 단점은 두 데이터의 동기화가 더 많은 단계를 거쳐야 한다는 것입니다. 데이터베이스는 항상 속도를 위해 병목 현상을 발생시킵니다. 이것이 핵심입니다.
2. 페이지 캐시:
페이지를 방문할 때마다 먼저 해당 캐시된 페이지 파일이 있는지 확인합니다. 존재하지 않는 경우, 데이터베이스에 연결하고 데이터를 가져오고 페이지를 표시하고 동시에 캐시 페이지 파일을 생성하면 다음에 방문할 때 페이지 파일이 역할을 수행하게 됩니다. (템플릿 엔진과 인터넷의 일부 일반적인 PHP 캐싱 메커니즘 클래스에는 일반적으로 이 기능이 있습니다.)
3. 시간 트리거 캐싱:
확인 파일이 존재하고 타임스탬프가 설정된 만료 시간보다 짧은지 여부. 파일 수정의 타임스탬프가 현재 타임스탬프에서 만료 타임스탬프를 뺀 값보다 큰 경우 캐시가 사용되며, 그렇지 않으면 캐시가 업데이트됩니다.
4. 콘텐츠 트리거 캐싱:
데이터가 삽입되거나 업데이트되면 PHP 캐시 메커니즘이 강제로 업데이트됩니다.
5. 정적 캐시:
여기서 언급하는 정적 캐시는 HTML이나 XML과 같은 정적, 직접 생성되는 텍스트 파일을 의미합니다. 업데이트 시 한 번 재생성되는데, 이는 크게 변경되지 않는 페이지에 적합하므로 여기서는 언급하지 않겠습니다.
위 내용은 코드 수준 솔루션입니다. 다음 내용은 코드 수준이 아니며 이를 달성하려면 여러 당사자의 협력이 필요합니다.
6. 메모리 캐시:
Memcached는 데이터베이스 부하를 줄이고 성능을 향상시키는 데 사용되는 고성능 분산 메모리 객체 PHP 캐싱 메커니즘입니다. 동적 응용 프로그램 속도로 액세스합니다.
7. PHP 버퍼:
eaccelerator, apc, phpa, xcache가 있습니다. 이에 대해서는 언급하지 않겠습니다. 검색해 보세요. 많이 있으니 직접 찾아보세요 이것만 알아도 괜찮습니다
8. MYSQL 캐시:
이것 코드 수준이 아닌 것으로 간주됩니다. 예, 클래식 데이터베이스에서는 아래의 실행 시간을 살펴보세요. 0.09xxx 등
9. 🎜>
Nginx, SQUID, mod_proxy 등(Apache2 이상은 mod_proxy, mod_cache로 구분됩니다.)
10 DNS 폴링:
BIND는 오픈 소스 DNS 서버 소프트웨어입니다. 이것은 직접 검색해 보면 알 수 있습니다.
일부 대형 웹사이트에서는 이렇게 하는 것으로 알고 있습니다. 쉽게 말하면 동일한 페이지나 파일이 서로 다른 서버에 캐시되어 북쪽과 남쪽에 따라 해당 서버에 자동으로 파싱되는 것입니다.