創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

使用內(nèi)存緩存優(yōu)化 WordPress 文章瀏覽統(tǒng)計(jì)效率的方法?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!
使用內(nèi)存緩存優(yōu)化 WordPress 文章瀏覽統(tǒng)計(jì)效率。
WordPress 默認(rèn)的自定義字段緩存方式
一般的文章瀏覽統(tǒng)計(jì)插件,都是使用自定義字段來存儲(chǔ)數(shù)據(jù)的,如果服務(wù)器開啟了 Memcached 內(nèi)存緩存,自定義字段的數(shù)據(jù)是怎么被緩存呢?WordPress 會(huì)以 $post_id 做為 cache_key,'post_meta' 作為 cache_group 整體進(jìn)行緩存。
所以更新某個(gè)自定義字段,相當(dāng)于該 $post_id 下的所有自定義字段的緩存都一起更新,而每次文章瀏覽,這個(gè)自定義字段數(shù)據(jù)都會(huì)加 1,這樣,每次自定義字段的緩存都會(huì)更新,然后就會(huì)造成每個(gè)頁面會(huì)多出三個(gè) SQL 查詢。
使用內(nèi)存緩存優(yōu)化文章瀏覽統(tǒng)計(jì)效率
有沒有辦法解決這個(gè)問題呢?我們可以把文章的瀏覽統(tǒng)計(jì)先緩存到內(nèi)存中,每次增加10次瀏覽才寫入數(shù)據(jù)庫中去,這樣就可以大大降低 WordPress 操作因?yàn)樽远x字段變更而造成 SQL 查詢次數(shù)。
將上面的代碼復(fù)制到當(dāng)前主題的 funtions.php 文件中:
// 更新文章瀏覽數(shù)的時(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ù)的時(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);另外可能存在一個(gè)小問題:由于 Memcached 的緩存不是持久的,如果不小心把將內(nèi)存緩存的清空,文章的瀏覽數(shù)會(huì)丟失一部分,但是肯定少于10了。
WPJAM Basic 插件已經(jīng)集成了 Memcached,下載 WPJAM Basic 之后,將 wpjam-basic/template/ 目錄下的 object-cache.php 文件復(fù)制到 wp-content 目錄下即可。
感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)使用內(nèi)存緩存優(yōu)化 WordPress 文章瀏覽統(tǒng)計(jì)效率的方法大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。
網(wǎng)站標(biāo)題:使用內(nèi)存緩存優(yōu)化WordPress文章瀏覽統(tǒng)計(jì)效率的方法-創(chuàng)新互聯(lián)
URL地址:http://chinadenli.net/article44/digoee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、云服務(wù)器、軟件開發(fā)、小程序開發(fā)、網(wǎng)站制作、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容