什么是對象緩存以及如何在WordPress中使用它

在緩存方面,有很多不同的類型。有瀏覽器緩存和頁面緩存,更不用說移動端緩存和用戶緩存了。如果您使用的是WP Rocket,那么您已經從這些緩存中受益了。但另一種您可能要添加進來的應該是對象緩存

對象緩存涉及存儲數據庫查詢,在您的WordPress網站上啟用對象緩存后,它可以幫助加快PHP執行時間,減少數據庫負載并更快地將內容傳遞給訪問者。

在本文中,我們將介紹什么是對象緩存以及它如何與WordPress配合使用(包括WordPress提供的內置對象緩存)。我們還將探討幾種不同的方法,可以在您的網站上實施這種類型的緩存以提高其性能。

什么是緩存?

首先,讓我們看一下將對象緩存置于上下文中的一般緩存。

緩存是將經常訪問的數據臨時存儲在緩存中的過程,因此您可以將其重用于后續請求。

當某人登陸您的站點,并且您未啟用緩存時,他們的瀏覽器會將對該頁面的請求發送到您的服務器。然后,您的服務器處理該請求,編譯頁面,然后將其發送回瀏覽器。

如果您的網站流量少,那么服務器可以非常輕松地處理,因為它只需要不時地處理和編譯頁面。但如果服務器運行的是大型網站,隨著請求的到來,它們不得不更加努力地在一秒內處理多個頁面。

這時候,我們就需要使用緩存來減輕服務器的負載壓力。它存儲每個請求的副本,然后在下一個相同請求到達時,它檢查緩存并從那里提供服務。如果沒有副本,該請求將發送到服務器進行處理和編譯,并在返回瀏覽器的途中將副本存儲在緩存中。

緩存的好處在于,它使您的服務器免除了必須要做的更多工作,從而可以處理比其他服務器更多的流量。它還使用戶能更快地查看頁面,大大提高了用戶體驗。

如果您想了解有關緩存工作原理的更多信息,請查看為什么緩存插件對WordPress網站至關重要

不同類型的緩存

緩存有兩種主要類型:客戶端緩存服務器端緩存

客戶端緩存的類型很多,但是您可能最熟悉的一種是瀏覽器緩存。這是瀏覽器在其中存儲靜態網頁內容的位置,因此下次有人訪問您的網站時,該頁面將從其計算機上的緩存中拉出,而不是再次下載。

對象緩存是服務器端緩存的一種。服務器端緩存的類型很多,但是重要的知識包括:

1.對象緩存。我們將在下面對此進行更詳細的介紹,但是對象緩存涉及存儲數據庫查詢,以便下次需要數據時,無需查詢數據庫即可從緩存中傳遞數據。

2.頁面緩存。頁面緩存涉及存儲頁面的整個HTML,以便在后續視圖中可以生成和顯示內容(包括文件和數據庫查詢),而無需WordPress每次都這樣做。

3.操作碼緩存。操作碼緩存涉及在每個請求之間編譯PHP代碼。為了執行PHP代碼,PHP編譯器必須先編譯代碼,然后生成可執行代碼供服務器執行。操作碼緩存已編譯的代碼。

4.CDN緩存。內容分發網絡(CDN)使用世界各地的邊緣服務器來存儲靜態網站文件(即CSS,JavaScript和媒體文件),以便更快地將其分發給與主機服務器地理上相距遙遠的用戶。

什么是對象緩存?

對象緩存涉及存儲數據庫查詢結果,以便下次需要結果時,可以從緩存中為它提供服務,而不必重復查詢數據庫。

作為內容管理系統,WordPress自然且高度依賴于數據庫。因此,數據庫效率對于擴展WordPress至關重要。

如果您運行一個人流量大的站點,并且對頁面的請求生成了大量的數據庫查詢,則您的服務器很快就會變得不堪重負,進而對站點的性能產生負面影響。

因此,在站點上啟用對象緩存后,它可以幫助減輕數據庫和服務器的負載并更快地傳遞查詢。

什么是WP_Object_Cache?

WordPress有一個內置的對象緩存WP_Object_Cache。它于2005年推出,提供了一種自動將數據庫中的任何數據存儲在PHP內存中的方法,以防止重復查詢。

但是,此對象高速緩存僅存儲用于單個頁面加載的對象-在請求結束時會丟棄高速緩存中的對象,因此在下次請求該頁面時必須從頭開始重建它們。

盡管這是WordPress的一項有用功能,但要確保在單個頁面加載期間不會為類似的查詢請求多次查詢數據庫,但這并不十分有效。

這是持久性緩存解決方案可以提供幫助的地方。當可用于在多個頁面加載之間緩存對象時,對象緩存功能更強大。

外部持久性對象緩存解決方案(如Redis和Memcached)使在請求之間持久化對象緩存成為可能。這有助于加快數據庫查詢的交付速度,同時進一步減輕服務器的工作量。

什么是Redis和Memcached?

如果要擴展規模,則必須進行持久對象緩存。沒有它,您網站的性能將隨著其復雜性和流量的增加而降低。登錄的用戶和動態頁面也是如此—對象緩存可以幫助提供更好,更快的用戶體驗。

有兩種值得一試的流行持久對象緩存工具:RedisMemcached

這兩種工具都是快速而強大的內存中數據存儲,可以減少站點的MySQL數據庫負載,同時還可以減少站點的響應時間并增強站點的擴展能力和處理增加的流量的能力。

長期以來,Memcached一直是流行的緩存選擇,但是Redis可以執行Memcached可以做的所有事情,并且具有更大的功能集。另外,它更受歡迎并且得到更好的支持。

要深入了解Redis和Memcached的功能和優缺點,可以查看Stack Overflow 上的這篇文章

如何在WORDPRESS中使用對象緩存

默認情況下,內置于WordPress的對象緩存已在您的網站上運行,因此您無需執行任何操作即可啟用它。

但是,如果您想將對象緩存提高到一個新的水平,以便在頁面加載之間持久地緩存數據庫查詢,則有一些可用的選項很容易實現。

1.使用Redis

對于支持Redis的對象緩存,可以使用WordPress.org上提供的免費插件。

活動安裝超過30,000,最流行的選擇是Redis Object Cache。它支持Predis、PhpRedis(PECL)、HHVM、復制、群集和WP-CLI。

使用此插件之前,您需要檢查您的站點是否正在使用具有所需PHP Redis擴展名和正常工作的Redis服務器的PHP環境。

如果一切就緒,則此插件的安裝非常簡單-只需激活該插件,轉到“設置”>“ Redis”,然后單擊“啟用對象緩存”即可。

此外,您還可以選擇另一個插件:WP Redis,它的設置有些復雜。該插件要求您創建一個名為 object-cache.php 的文件并將其添加到wp-content文件夾中,并編輯wp-config.php文件。

如果WP-CLI是開發工作流程的重要組成部分,則可能會發現使用WP Redis更為方便,因為它附帶了各種命令。

2.詢問您的主機商

如果您使用托管型WordPress主機,則您的主機可能會通過Redis提供對象緩存。因此,請查看主機的文檔,以獲取有關如何啟用對象緩存的信息,或者與您的主機商聯系以檢查其是否可用。

如果您使用的是虛擬主機,一般是沒有提供這些高級緩存服務的。如果您無法使用對象緩存,則可能要考慮升級為云服務器。

在這里,我們推薦大家購買 阿里云騰訊云 等大廠的云服務器,記住一點,不要再去使用虛擬主機了,虛擬主機是沒有辦法做優化的。

小結

對象緩存為提高數據庫性能提供了一個相對簡單的解決方案,尤其是考慮到WordPress性能在很大程度上取決于數據庫的速度這一事實。

借助Redis之類的解決方案,您可以在站點上快速啟用持久性對象緩存,但是前提是,您使用的是云服務器或者托管型WordPress主機,才有可能啟用這類高級緩存服務。

更多教程:

聲明:本站所有文章,如無特殊說明或標注,均為本站原創發布。任何個人或組織,在未征得本站同意時,禁止復制、盜用、采集、發布本站內容到任何網站、書籍等各類媒體平臺。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
歡迎關注我們的微信公眾號:WPDAXUE

倡萌

一個文科IT宅男,喜歡折騰WordPress和被它折騰 ^_^

1 條評論

發表評論