WordPress 캐시: 캐시할 수 있는 항목과 캐시 방법
게시 됨: 2017-04-28웹사이트가 빠르게 진행되기를 원합니다. 사이트 속도에 기여하는 기술 중 하나는 캐싱입니다. 캐싱은 향후 요청에 신속하게 사용할 수 있도록 데이터를 저장하는 일련의 소프트웨어 및 하드웨어 기술입니다. 이 기사에서는 WordPress 캐시가 무엇인지, 다양한 수준에서 구현하는 방법, 걱정할 필요가 없도록 모든 것을 관리하는 방법에 대해 설명합니다.
캐싱이란 무엇입니까?
컴퓨팅에는 "캐시"라는 것이 있는데, 소프트웨어 또는 하드웨어 구성 요소를 사용하여 값을 임시로 저장하고 미래에 더 빠르게 검색합니다. MySQL 쿼리 또는 컴파일된 PHP 바이트코드와 같은 값과 HTML 및 이미지와 같은 중복 데이터. 거의 모든 것, 정말.
데이터 사본을 만들어 "캐싱" 구성 요소에 배치함으로써 상당한 성능 이점을 얻습니다. 방문자는 캐시되지 않은 콘텐츠보다 훨씬 빠르게 캐시된 콘텐츠를 검색할 수 있습니다. 방문자는 캐시되지 않은 콘텐츠보다 캐시된 콘텐츠를 더 빨리 검색할 수 있습니다. 캐싱 구성 요소는 일반적으로 메모리이지만 기존 스토리지보다 빠를 수 있는 모든 것이 될 수 있습니다. 그러나 얼마나 많은 성능 향상을 얻을 수 있습니까?
그것은 모두 캐시할 수 있는 데이터의 양에 달려 있지만 일반적으로 말해서 1초 정도의 성능 향상은 드문 일이 아닙니다.
무엇을 캐시할 수 있습니까?
캐싱을 사용하여 웹사이트를 얼마나 최적화하려는지에 따라 여러 수준이 있습니다.
HTML 출력
첫 번째 방법은 HTML 페이지 자체를 캐시하는 것입니다. WP Rocket 및 W3 Total Cache와 같은 많은 WordPress 캐시 플러그인이 있습니다. 이러한 플러그인은 HTML 출력 결과를 캐시하여 향후 요청에 대한 시간을 절약합니다. 또한 모든 플러그인은 캐시 무효화 메커니즘을 제공하므로 원할 때 캐시되지 않은 콘텐츠를 제공할 수 있습니다.
또 다른 기술은 HTML을 "축소"하는 것, 즉 더 작게 만드는 것입니다. 이렇게 하면 페이지당 몇 킬로바이트가 제공되지만 시간이 지남에 따라 추가됩니다.
이를 위해서는 대시보드에 액세스하거나 WordPress에 플러그인을 설치하는 방법이 필요합니다.
참조:
- WP 로켓
- W3 Total Cache WordPress 플러그인
PHP 옵캐시
OpCaching은 PHP가 소스 PHP 파일을 가져와서 바이트코드라고 하는 중간 형식으로 컴파일하는 기술입니다. 바이트코드는 컴퓨터의 기계어와 비슷하지만 실제 기계가 아닌 "가상 기계"(이 경우 PHP)에서 실행되는 기계어를 의미합니다. 그것은 기계어이고 메모리에 상주하기 때문에 PHP 인터프리터가 한 번에 명령을 구문 분석하고 실행하는 것보다 훨씬 빠르게 실행할 수 있습니다.
해당 수준에서 캐싱은 이러한 바이트코드 데이터를 메모리에 저장하므로 애플리케이션을 더 빠르게 실행할 수 있습니다.
PHP OpCache를 활성화하려면 PHP 구성 파일에 액세스할 수 있어야 합니다.
참조: OpCache
PHP 객체 캐시
이것은 언어의 OOP 수준에서 수행되는 캐싱입니다. PHP는 객체 지향 언어입니다. 즉, 논리, 데이터 및 아이디어를 설명하기 위해 "객체" 개념을 사용합니다. 애플리케이션이 실행됨에 따라 이러한 개체는 지속적으로 생성 및 소멸됩니다(가비지 수집기라는 하위 시스템에 의해 동적으로). 이러한 객체를 생성하고 초기화하는 과정에는 시간이 걸립니다. 따라서 객체 캐싱은 객체 자체를 캐싱하여 이 문제를 해결합니다.
이것은 Memcached와 같은 플러그인과 Redis용 플러그인을 통해 구현됩니다. Redis는 데이터베이스로 사용할 수 있는 강력한 메모리 내 데이터 구조 저장소입니다. Memcached는 분산 객체 캐싱 시스템입니다. 둘 다 해당 수준에서 캐싱을 수행하는 데 탁월한 선택입니다.
PHP 개체 캐싱을 활성화하려면 PHP 구성에 액세스할 수 있어야 합니다. Redis 또는 Memcached 인스턴스에 대한 액세스도 필요합니다.
참조
- 레디스 워드프레스 플러그인
- Memcached 워드프레스 플러그인
- 레디스 문서
- Memcached 위키
MySQL 쿼리 캐싱
이것은 동일한 아이디어이지만 데이터베이스 수준에서 적용됩니다. 데이터베이스는 입력된 쿼리에 따라 데이터 집합을 반환합니다. 이러한 쿼리의 결과를 캐시할 수 있다면 다음에 누군가가 해당 쿼리를 사용할 때 데이터가 메모리에 캐시되어 있기 때문에 데이터를 훨씬 더 빨리 얻을 수 있습니다.
이를 위해서는 데이터베이스 서버에 대한 액세스 권한이 있어야 합니다.
참조: MySQL 8.0 쿼리 캐시
이 모든 것이 적절하게 설정되고 유지되기 위해서는 많은 것들이 필요합니다. 경험이 부족하면 기술 지식, 시간, 심지어 돈까지. 그러나 우리는 그 모든 것을 도울 수 있습니다.
Pressidium의 Multilayer Caching으로 모든 것을 해결하는 방법.
답은 간단합니다. 우리는 WordPress의 모든 계층에서 모든 곳에서 캐싱을 구현했습니다.
HTML 출력 의 경우 hot 과 warm 의 두 가지 캐싱 레이어를 구현 합니다. 이 레이어는 적응형 캐시 엔진의 일부입니다. 우리 엔진은 또한 귀하의 사이트를 프로파일링하고 가장 효율적인 캐싱 규칙을 시행할 수 있습니다. 그러나 이에 대한 자세한 내용은 다른 기사에서 다루겠습니다. 따라서 핫 캐시는 메모리에 상주하고 빠르게 액세스할 수 있는 데이터입니다. 웜 캐시는 최신 SSD 디스크에 있는 데이터입니다. 이렇게 하면 전체 캐시 적중률이 증가 하고 사이트 성능이 기존 스토리지보다 훨씬 더 좋아집니다.
기업 고객을 위해 우수한 메모리 내 데이터 구조 저장소인 Redis를 사용하여 개체 캐싱 시스템을 구축했습니다. 마지막으로 MySQL 쿼리 캐싱입니다. 이는 기본적으로 활성화되어 있으며 DevOps에서 지속적으로 모니터링합니다. MySQL 쿼리 캐싱은 웹사이트 성능에 관한 귀중한 정보를 제공할 수 있습니다.
이 모든 것이 일부 WordPress 캐시 플러그인이 아니라 플랫폼의 백엔드에서 구현된다는 점에 유의하는 것이 중요합니다. 즉 ) 우리는 외부 서버를 저장용으로 사용하므로 웹 서버의 리소스에 부담을 주지 않으며 b) 디스크보다 액세스가 더 빠른 메모리에 데이터를 저장합니다.
캐싱 요구 사항과 예산이 무엇이든 저희가 제공할 수 있습니다.