>  기사  >  CMS 튜토리얼  >  WordPress 웹 애플리케이션 개발 가이드: 사용 가능한 기능에 대한 자세한 설명(7부): 캐싱 기술

WordPress 웹 애플리케이션 개발 가이드: 사용 가능한 기능에 대한 자세한 설명(7부): 캐싱 기술

WBOY
WBOY원래의
2023-08-30 12:37:02856검색

WordPress Web应用开发指南:可用功能详解(第7部分):缓存技术

웹 애플리케이션을 구축할 때 항상 주의해야 할 가장 중요한 것 중 하나는 성능입니다.

성능이 특징이라는 말이 있죠.

디자이너, 개발자, 사용자 모두 직관적으로 알 수 있습니다. 앱에 관해서라면 우리는 기다리는 것을 싫어합니다. 우리는 일이 충분히 빨리 진행되지 않거나 생각보다 오래 기다려야 할 때 좌절감을 느낍니다.

이를 위해 대부분의 최신 웹 개발 프레임워크는 일부 API를 사용하여 특정 유형의 캐싱을 구현할 수 있으며 WordPress(기본 프레임워크임에도 불구하고)도 예외는 아닙니다.

그래서 WordPress가 웹 애플리케이션 개발의 기반으로 실행 가능한 선택인 이유에 대한 논의를 계속하면서 핵심 애플리케이션에서 제공하는 API, 작동 방식 및 이를 활용하여 이점을 얻을 수 있는 방법도 살펴보겠습니다. 추가 캐싱 플러그인을 사용하는 방법에 따라 성능이 더욱 향상됩니다.


캐싱이 왜 중요한가요?

간단히 말하면 캐싱은 자주 검색되는 데이터를 메모리 어딘가에 저장하여 빠르게 검색할 수 있게 해주기 때문에 중요합니다.

더 큰 그림을 보면 여러 사용자가 웹 사이트를 볼 때 이는 점점 더 분명해집니다. 내 말은, 한 사람(또는 아주 소수의 사람)이 웹 사이트를 방문하고 해당 웹 사이트가 데이터베이스에 데이터를 저장하는 경우 페이지가 로드될 때마다 해당 정보를 웹 사이트에서 검색해야 한다는 것입니다. 데이터베이스가 페이지에 삽입되어 사용자에게 반환됩니다.

일정 수준의 캐시가 구축되면 데이터베이스를 자주 호출할 필요가 없습니다. 대신, 메모리 영역에서 정보를 가져올 수 있으므로 검색 속도가 빨라지고 페이지 로드 시간도 빨라집니다.

이 기사의 뒷부분에서 이에 대한 기술적 세부 사항을 다루겠습니다.

플러그인은 어떻습니까?

WordPress를 오랫동안 사용해 왔다면 아마도 사용 가능한 다양한 캐싱 플러그인에 익숙할 것입니다.

웹사이트 및/또는 웹 애플리케이션 속도를 높이는 데 있어 의심할 여지 없이 훌륭한 솔루션이지만, 다음과 같은 질문이 제기됩니다. 플러그인을 사용하여 이 작업을 수행할 수 있다면 왜 걱정해야 합니까?

물론 이것은 유효한 질문이지만 플러그인은 스스로 많은 일을 할 수 있습니다.

개발자는 캐싱 메커니즘 없이도 잘 작동할 뿐만 아니라 해당 캐싱 플러그인을 통해 성능이 크게 향상되는 방식으로 애플리케이션을 구축할 수 있습니다.

내 말은, 이러한 캐싱 플러그인은 테마와 애플리케이션이 어딘가에 저장하고 싶어하는 데이터를 찾는다는 뜻입니다. 그리고 우리가 작업 환경에서 프로그래밍 방식으로 이를 수행할 수 있다면 이 플러그인은 성능에 더 큰 영향을 미칠 것입니다.

사용 가능한 API를 이해한 후 이 문서의 뒷부분에서 이 주제를 다시 살펴보고 캐싱 플러그인의 성능을 어떻게 향상시킬 수 있는지 살펴보겠습니다.


임시 API

애플리케이션에 1단계 캐싱을 도입하려면 WordPress의 Transients API를 활용해야 합니다. 먼저 일시적인 것의 공식적인 정의는 "짧은 시간 동안만 존재하는 것"이라는 점에 유의하세요.

Codex Alimentarius에 정의된 대로:

[임시 API]는 캐시된 데이터에 사용자 정의 이름과 데이터가 만료되고 삭제되는 기간을 지정하여 데이터베이스에 캐시된 데이터를 임시로 저장하는 간단하고 표준화된 방법을 제공합니다.

근데 이게 정확히 무슨 뜻인가요? 결국 데이터는 여전히 데이터베이스에 저장되어 있는데, 이것이 다른 데이터베이스 테이블(예:

테이블?)에 데이터를 저장하는 것보다 나은 이유는 무엇일까요? wp_options

캐싱 및 플러그인에 대한 논의를 다시 검토한 후 이에 대해 더 자세히 논의하겠습니다.

임시 설정

임시 값 설정은 실제로 옵션 테이블에 데이터를 저장하는 것만큼 간단합니다.

구체적으로는 데이터를 고유하게 식별하는 키 값과 해당 키와 연결된 값이 필요합니다. 또한 테이블을 새로 고치기 전에 테이블의 데이터를 유지하려면 만료 시간(초)이 필요합니다.

현재 사용자의 이름을 웹사이트의 마지막 또는 가장 최근 활성 사용자로 저장하고 싶다고 가정해 보겠습니다.

함수를 사용하여 이를 수행할 수 있습니다. wp_get_current_user()

먼저 다음 값을 설정합니다.

set_transient( 'most_recent_user', wp_get_current_user()->user_login, 12 * HOUR_IN_SECONDS )

여기서 다음 사항에 주의하세요.

    시스템에서 가장 최근에 로그인한 사용자를 식별하고 이를 12시간 동안 저장합니다.
  • 상수는 WordPress 3.5에서 도입되었습니다. 전체 상수 목록은 여기에서 확인할 수 있습니다. HOUR_IN_SECONDS
이것이

임시 항목을 설정하는 방법이지만, 임시 항목이 존재하지 않거나 이미 존재하는 경우 이를 관리하는 방법을 설명하지는 않습니다.

이 내용은 이 글의 뒷부분에서 자세히 다루겠습니다.

과도 검색

임시 항목을 검색하는 경우 메타데이터나 옵션과 같은 항목을 검색하는 것과 매우 유사합니다. 즉, 정보를 검색하려면 키만 알면 됩니다.

따라서 위의 예와 일관성을 유지하기 위해 다음 호출을 사용하여 애플리케이션의 가장 최근 사용자를 검색할 수 있습니다.

get_transient('most_recent_user');

이것은 저장한 정보 유형이 무엇이든 분명히 반환합니다. 또는 임시 기간이 만료된 경우(예: 12시간 이상 경과) 함수는 부울 값 FALSE을 반환합니다.

이 점은 특히 캐시된 값을 읽으려고 한 다음 다른 데이터 소스에서 가져와야 하는 경우(임시 저장소에서 사용할 수 없는 경우) 기억해야 할 핵심입니다.

이 글이 끝나기 전에 이 작업을 수행하는 완전한 예를 살펴보겠습니다.

임시 삭제

마지막으로, 완전히 제거하기 위해 임시 항목을 삭제해야 하거나 다른 값으로 대체할 수 있도록 정의된 만료 전에 제거해야 하는 경우 다음 함수를 사용할 수 있습니다.

delete_transient('most_recent_user');

또한 임시 값 삭제에 실패하면 함수는 FALSE;否则,它将返回 FALSE를 반환하고, 그렇지 않으면

를 반환합니다.

임시 만료

캐시된 값의 만료 시간을 설정할 때 음악적으로 기본적인 정수 연산보다 더 쉽게 값을 설정할 수 있는 방법이 있습니다.

MINUTE_IN_SECONDS예를 들어

는 60보다 사용하기가 더 쉽습니다. 특히 분, 시간 또는 일을 곱할 때 더욱 그렇습니다.

WordPress 3.5부터 이러한 계산을 더 쉽게 읽을 수 있도록 핵심 애플리케이션에 여러 상수가 추가되었습니다.

즉:
  • MINUTE_IN_SECONDS
  • HOUR_IN_SECONDS
  • DAY_IN_SECONDS
  • WEEK_IN_SECONDS
  • YEAR_IN_SECONDS

사용하고 읽고 쓰기가 더 쉬워졌죠?

Transient를 사용한 전체 예

이 시점에서는 옵션 테이블에 값을 저장하는 것부터 시작하여 Transient를 설정하는 방법을 이해하는 것이 중요하다고 생각합니다.

이 작업을 수행하는 순서는 다음과 같습니다.
  1. wp_options
  2. 테이블에 옵션을 저장하겠습니다.
  3. 다음으로 캐시에 값이 존재하는지 확인하겠습니다.
  4. 캐시에 있으면 삭제하고, 그렇지 않으면 추가합니다.

그런 다음 코드 후반부에서는 다음을 수행합니다.
  1. 캐시에서 가치 함수를 검색해 보겠습니다.
  2. 값이 캐시에 있으면 옵션 테이블로 돌아가지만 값이 있으면 해당 값을 사용합니다.

그러한 내용을 살펴보겠습니다.

으아아아

이 예제는 완전하지 않습니다. 더 명확하게 리팩터링할 수 있고 코드를 애플리케이션과 더 관련성이 높은 함수로 추상화해야 하지만 이 코드의 목적은 조건부 논리, 옵션 및 과도 현상을 처리하는 방법을 보여주는 것입니다.

플러그인에서는 어떻게 작동하나요?

이제 우리는 플러그인 성능을 향상시키기 위해 과도 현상을 사용하는 방법에 대한 질문을 다시 검토할 수 있습니다.

앞서 언급했듯이:

사용 가능한 API를 이해한 후 이 문서의 뒷부분에서 이 주제를 다시 검토하여 캐싱 플러그인의 성능을 향상시킬 수 있는 방법을 이해할 것입니다. 块引用>

즉, 캐싱과 WordPress 데이터베이스는 모두 데이터베이스에 있는 데이터의 위치

에 관한 것입니다.

임시 데이터는 다른 데이터와 다른 위치에 저장되므로 플러그인(예: memcached 기반 플러그인)은 임시 데이터가 저장된 데이터를 찾아 해당 위치에서 메모리로 데이터를 로드합니다.

따라서 데이터가 요청되면 메모리에서 데이터가 검색됩니다. 데이터가 존재하지 않으면 데이터베이스에서 검색됩니다.

가장 중요한 것은 올바르게 프로그래밍된 경우 캐시에서 데이터를 읽는 데 실패하고 데이터베이스에서 데이터를 검색할 때 캐시에 다시 삽입되어 다음에 검색할 때 캐시에 삽입된다는 것입니다. 메모리에서 사용 가능합니다.

마지막으로 일시적 정보에 대해 주목해야 할 핵심 사항은 만료 날짜가 있다는 것입니다. 이는 데이터가 특정 기간 동안 데이터베이스의 해당 영역에만 저장된다는 것을 의미합니다.

이를 위해서는 이 점을 고려해야 합니다. 이는 과도 현상을 검색할 때마다 해당 현상이 존재하는지 확인해야 함을 의미합니다. 그렇지 않은 경우 해당 위치에서 꺼내어 올바른 위치에 보관합니다.

맞춤 쿼리

지금까지 웹 애플리케이션 개발의 기본과 관련하여 WordPress에서 제공하는 많은 기능을 다루었습니다.

하지만 마지막으로 다루어야 할 주요 구성 요소가 하나 있는데, 이것이 바로 사용자 정의 쿼리를 처리하는 방법입니다.

WP_QueryWP_User_Query물론

과 같이 WordPress의 특정 목적을 위해 설계된 쿼리 실행과 관련된 몇 가지 훌륭한 API가 있지만 정의된 WordPress 개체를 사용하여 작성할 수 있는 몇 가지 기본 도구도 살펴보겠습니다. 올바른 데이터 정리 방법을 사용하여 데이터베이스에 추가합니다.

그러나 다음 기사에서는 이 모든 내용과 그 이상을 다룰 것입니다.
🎜

위 내용은 WordPress 웹 애플리케이션 개발 가이드: 사용 가능한 기능에 대한 자세한 설명(7부): 캐싱 기술의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.