wordpress提升內(nèi)存緩存提升wordpressblog統(tǒng)計分析高效率主題風(fēng)格文章提升
Memcached 內(nèi)存緩存能夠提升 WordPress 許多作用,給你的 WordPress 越來越更快,下邊頻道為大伙兒詳細(xì)介紹怎么使用 Memcached 來深層提升 WordPress應(yīng)用內(nèi)存緩存提升。
WordPress 文章瀏覽統(tǒng)計分析高效率。WordPress 默認(rèn)設(shè)置的自定義字段緩存方法一般的文章瀏覽統(tǒng)計分析軟件,全是應(yīng)用自定義字段來儲存數(shù)據(jù)信息的,假如網(wǎng)絡(luò)服務(wù)器打開了 。Memcached 內(nèi)存緩存,自定義字段的數(shù)據(jù)信息是怎么被緩存呢?WordPress 會以 $post_id 作為 cache_key,’post_meta’ 做為 cache_group 總體開展緩存。因此升級某一自定義字段,等同于該 $post_id 下的全部自定義字段的緩存都一起升級,而每一次文章瀏覽,這一自定義字段數(shù)據(jù)信息都是加 1,那樣,每一次自定義字段的緩存都是升級,隨后便會導(dǎo)致每一個網(wǎng)頁頁面會空出三個 SQL 查尋。應(yīng)用內(nèi)存緩存提升文章瀏覽統(tǒng)計分析高效率有木有方法處理這個問題呢?我們可以把文章的瀏覽統(tǒng)計分析先緩存到內(nèi)存中,每一次提升10次瀏覽才載入數(shù)據(jù)庫查詢中去,那樣就可以大幅度降低 WordPress 實際操作由于自定義字段變動而導(dǎo)致 SQL 查尋頻次。將上邊的編碼拷貝到當(dāng)今主題風(fēng)格的 funtions.php 文檔中:
// 升級文章瀏覽數(shù)的情況下,最先升級到內(nèi)存中,隨后每10次,才提到數(shù)據(jù)庫查詢中
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);
// 獲得文章瀏覽數(shù)的情況下,最先從內(nèi)存中獲得,沒有才從數(shù)據(jù)庫查詢中獲得
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 的緩存并不是長久的,假如一不小心把將內(nèi)存緩存的清除,文章的瀏覽數(shù)會遺失一部分,可是毫無疑問低于10了。 WPJAM Basic 軟件早已集成化了 Memcached,免費下載 WPJAM Basic 以后,將 wpjam-basic/template/ 文件目錄下的 object-cache.php 文檔拷貝到 wp-content 文件目錄下就可以。