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