Memcached 記憶體快取可以優化 WordPress 很多功能,讓你的 WordPress 變得更快,以下由WordPress教學欄位給大家介紹如何使用 Memcached 來深度優化 WordPress。
要深入理解 WordPress 最佳化,必須先了解 WordPress 物件快取 機制。
WordPress 物件快取機制和伺服器設定
WordPress Object Cache(WordPress 物件快取)是WordPress 的快取機制,它的主要功能是把負責查詢或運算的結果按照Key-Value 這樣的方式(WordPress 也支援按照Group 來劃分和避免快取的內容衝突)儲存到物件裡面,下次進行同樣操作的時候,可以讓直接從這個物件中取出數據,不用重複到資料庫中或其他外部網站取得資料。
WordPress Object Cache 和伺服器設定關係很大,如果系統開啟了Memcached 記憶體緩存,則這個物件是直接存入內存,在資料未過期之前,以後再次讀取這個資料都是直接從記憶體中讀取的,這樣效率和速度都非常快的。
如果伺服器不支援記憶體快取的話,則只能保證在目前頁面下相同的查詢或操作不再重複從資料庫中讀取了。
WordPress 物件快取的函數
使用WordPress 物件快取技術其實是很簡單的:
使用wp_cache_add() 把資料加入快取中。
使用 wp_cache_set() 把資料設定到快取中。
使用 wp_cache_get() 到快取中讀取資料。
使用 wp_cache_delete() 刪除快取中的資料。
這些函數會牽涉到的四個參數:
參數
#$key 物件的 key。
$data 要存的值。
$group 分組,可選參數,用來把快取物件就行分組。
$expire 過期時間,可選參數,如果是預設緩存,這個參數沒用,如果是記憶體緩存,是設定快取的時間,單位是秒,預設為0(0的意思就是永遠,不會自動過期)。
使用WordPress 物件快取
下面以我即將更新WordPress 相關文章外掛為例,講講如何使用WordPress 物件快取:
我們知道WordPress 相關文章外掛程式是透過tag 和分類來取得相關文章,相同的tag 和分類越多,相關性越強,這樣就需要進行多個表聯合查詢來取得相關文章,這樣效率其實是比較差的。但一個文章它的相關文章一段時間內是不會變動的,所以我們就可以使用 WordPress 物件快取對相關文章進行加速。
以下是把把相關文章的資料寫入快取的例子,使用目前 post_id 作為 key,related_posts 作為 group,快取時間為一個小時,即 3600 秒。
global $post; $related_posts_data = wp_get_related_posts(); wp_cache_set($post->ID,$related_posts_data,'related_posts',3600);
上面只是把資料存到快取物件中,我們在顯示相關文章的時候,就要去呼叫這個物件快取來使用,首先檢查下是否已經有了緩存,如果你要的資訊沒有在快取中,或者已經過期了。 wp_cache_get() 會回傳 false,如果這樣,你就要去資料庫重新取得這些資訊。否則就返回在快取中的信息。
global $post; $related_posts_data = wp_cache_get($post->ID,'related_posts'); if(false === $related_posts_data){ $related_posts_data = wp_get_related_posts(); wp_cache_set($post->ID,$related_posts_data,'related_posts',3600); } echo $related_posts_data;
因為設定了一個小時,相關文章的資料就失效,這裡一般就無需更新緩存了,如果你在後台更改了設置,需要立即清理緩存,可以使用wp_cache_delete 進行清理:
wp_cacache_delete($post->ID,'related_posts');
WPJAM Basic 外掛程式已經整合了Memcached,下載WPJAM Basic 之後,將wpjam-basic/template/ 目錄下的object-cache.php 檔案複製到wp-content 目錄下即可。
以上是WordPress 物件快取(Object Cache)詳細介紹和使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!