您好,登錄后才能下訂單哦!
使用內存緩存優化 WordPress 文章瀏覽統計效率的方法?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!
使用內存緩存優化 WordPress 文章瀏覽統計效率。
WordPress 默認的自定義字段緩存方式
一般的文章瀏覽統計插件,都是使用自定義字段來存儲數據的,如果服務器開啟了 Memcached 內存緩存,自定義字段的數據是怎么被緩存呢?WordPress 會以 $post_id 做為 cache_key,'post_meta' 作為 cache_group 整體進行緩存。
所以更新某個自定義字段,相當于該 $post_id 下的所有自定義字段的緩存都一起更新,而每次文章瀏覽,這個自定義字段數據都會加 1,這樣,每次自定義字段的緩存都會更新,然后就會造成每個頁面會多出三個 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 文章瀏覽統計效率的方法大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。