>  기사  >  CMS 튜토리얼  >  메모리 캐싱을 사용하여 WordPress 기사 검색 통계 효율성 최적화

메모리 캐싱을 사용하여 WordPress 기사 검색 통계 효율성 최적화

藏色散人
藏色散人앞으로
2019-09-24 10:05:302712검색

Memcached 메모리 캐싱은 많은 WordPress 기능을 최적화하고 WordPress를 더 빠르게 만들 수 있습니다. 다음 칼럼에서는 WordPress를 심층적으로 최적화하는 방법을 소개합니다.

메모리 캐싱을 사용하여 WordPress 기사 검색 통계 효율성 최적화

메모리 캐시를 사용하여 WordPress 기사 탐색 통계 효율성을 최적화합니다.

WordPress 기본 사용자 정의 필드 캐싱 방법

일반 기사 탐색 통계 플러그인은 데이터 저장을 위해 사용자 정의 필드를 사용합니다. 서버에 Memcached 메모리 캐시가 활성화되어 있는데 사용자 정의 필드의 데이터는 어떻게 캐시됩니까? WordPress에서는 $post_id를 캐시_키로 사용하고 'post_meta'를 캐시 그룹으로 사용하여 전체적으로 캐싱합니다. 그래서 사용자 정의 필드를 업데이트하는 것은 $post_id 아래 모든 사용자 정의 필드의 캐시를 업데이트하는 것과 동일하며 기사를 볼 때마다 사용자 정의 필드 데이터가 1씩 증가하므로 매번 사용자 정의 필드의 캐시가 업데이트되면 페이지당 3개의 SQL 쿼리가 더 있게 됩니다.

메모리 캐시를 사용하여 기사 탐색 통계 효율성 최적화

이 문제를 해결할 방법이 있나요? 먼저 기사의 검색 통계를 메모리에 캐시한 다음 매번 10개의 보기를 추가한 후 데이터베이스에 쓸 수 있습니다. 이렇게 하면 WordPress 작업에서 사용자 정의 필드 변경으로 인해 발생하는 SQL 쿼리 수를 크게 줄일 수 있습니다. 위 코드를 현재 테마의 funtions.php 파일에 복사하세요.

// 更新文章浏览数的时候,首先更新到内存中,然后每10次,才写到数据库中
add_filter('update_post_metadata', function($check, $post_id, $meta_key, $meta_value){
if($meta_key == 'views'){
if($meta_value % 10 != 0){
$check= true;
wp_cache_set($post_id, $meta_value, 'views');
}else{
wp_cache_delete($post_id, 'views');
}
}
return $check;
}, 1, 4);
// 获取文章浏览数的时候,首先从内存中获取,没有才从数据库中获取
add_filter('get_post_metadata', function($pre, $post_id, $meta_key){
if($meta_key == 'views'){
$views= wp_cache_get($post_id, 'views');
if($views !== false){
return [$views];
}
}
return $pre;
}, 1, 3);

작은 문제가 있을 수도 있습니다. Memcached의 캐시는 지속성이 없기 때문에 주의하세요. 메모리캐시를 비우면 기사 조회수는 떨어지겠지만, 당연히 10회 미만이겠죠.

WPJAM Basic 플러그인에 Memcached가 통합되었습니다. WPJAM Basic을 다운로드한 후 wpjam-basic/template/ 디렉터리에 있는 object-cache.php 파일을 wp-content 디렉터리에 복사하세요.

위 내용은 메모리 캐싱을 사용하여 WordPress 기사 검색 통계 효율성 최적화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 wpjam.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제