WordPress緩存:可以緩存什麼以及我們如何做
已發表: 2017-04-28您希望您的網站快速運行。 一種有助於提高站點速度的技術是緩存。 緩存是一組軟件和硬件技術,用於存儲數據,以便它們可以快速用於未來的請求。 在本文中,我們將解釋什麼是 WordPress 緩存,它如何在許多不同的級別上實現,以及我們如何為您處理一切,讓您不必擔心。
什麼是緩存?
在計算中,有一種叫做“緩存”的東西,其中軟件或硬件組件用於臨時存儲值並在將來更快地檢索它們。 MySQL 查詢或編譯的 PHP 字節碼等值以及 HTML 和圖像等重複數據。 幾乎所有東西,真的。
通過製作數據副本並將它們放置在“緩存”組件中,我們獲得了顯著的性能優勢。 您的訪問者可以比未緩存更快地檢索緩存內容。 訪問者可以比未緩存的內容更快地檢索緩存的內容。 緩存組件通常是內存,但可以是比傳統存儲更快的任何東西。 但是您可以獲得多少性能改進?
這完全取決於您可以緩存多少數據,但一般來說,整整一秒的性能提升並不少見。
可以緩存什麼?
有幾個級別,具體取決於您希望使用緩存優化網站的程度。
HTML 輸出
第一種方法是緩存 HTML 頁面本身。 有許多 WordPress 緩存插件,例如 WP Rocket 和 W3 Total Cache,可以做到這一點等等。 這些插件緩存 HTML 輸出的結果,為將來的請求節省時間。 此外,每個插件都為您提供了緩存失效機制,因此您可以在需要時提供未緩存的內容。
另一種技術是“縮小”HTML,即使其更小。 這給你每頁幾千字節,但它會隨著時間的推移而增加。
您將需要訪問儀表板,或者需要一種將插件安裝到 WordPress 的方法才能做到這一點。
參考:
- WP火箭
- W3 Total Cache WordPress 插件
PHP OpCache
OpCaching 是一種 PHP 獲取源 PHP 文件並將它們編譯成稱為字節碼的中間形式的技術。 字節碼類似於計算機的機器代碼,但它指的是由“虛擬機”(本例中為 PHP)而不是由真實機器執行的機器代碼。 由於它是機器代碼並駐留在內存中,因此它的執行速度比讓 PHP 解釋器一次解析一個命令並執行它要快得多。
緩存在該級別將這些字節碼數據存儲到內存中,以便您的應用程序可以更快地執行。
您需要訪問 PHP 配置文件才能啟用 PHP OpCache。
參考:OpCache
PHP 對象緩存
這是在語言的 OOP 級別上完成的緩存。 PHP 是一種面向對象的語言,這意味著它使用“對象”的概念來描述邏輯、數據和思想。 當您的應用程序運行時,這些對像不斷被創建和銷毀(動態地,由稱為垃圾收集器的子系統)。 這些對象的創建和初始化過程需要時間。 所以對象緩存通過緩存對象本身來解決這個問題。
這是通過諸如 Memcached 之類的插件和 Redis 的各種插件實現的。 Redis 是一個強大的內存數據結構存儲,可以用作數據庫。 Memcached 是一個分佈式對象緩存系統。 它們都是在該級別進行緩存的絕佳選擇。
您需要訪問 PHP 的配置才能啟用 PHP 對象緩存。 您還需要訪問 Redis 或 Memcached 實例。
參考
- Redis WordPress 插件
- Memcached WordPress 插件
- Redis 文檔
- 內存緩存維基
MySQL 查詢緩存
這是相同的想法,但它應用於數據庫級別。 數據庫根據輸入的查詢返回一組數據。 如果您可以緩存這些查詢的結果,那麼下次有人使用該查詢時,他們將更快地獲取數據,因為它們將緩存在內存中。
為此,您將需要訪問數據庫服務器。
參考:MySQL 8.0 查詢緩存
為了正確設置和維護所有這些,需要做很多事情。 如果您缺乏經驗,技術知識、時間甚至金錢。 但我們可以幫助解決所有這些問題。
我們如何使用 Pressidium 的多層緩存解決所有問題。
答案很簡單。 我們在所有地方都實現了緩存:在 WordPress 的所有層上。
對於 HTML 輸出,我們實現了兩層緩存, hot 和 warm 。 這些層是我們自適應緩存引擎的一部分。 我們的引擎還可以分析您的站點並執行最有效的緩存規則。 但是,我們將在另一篇文章中詳細介紹這一點。 所以熱緩存是駐留在內存中並且可以快速訪問的數據。 暖緩存是駐留在最先進的 SSD 磁盤中的數據。 這會提高整體緩存命中率,並使您的站點的性能明顯優於傳統存儲。
對於我們的企業客戶,我們使用出色的內存數據結構存儲 Redis 構建了一個對象緩存系統。 最後,MySQL 查詢緩存。 這是默認啟用的,並由我們的 DevOps 持續監控。 MySQL 查詢緩存可以為您提供有關網站性能的寶貴信息。
需要注意的是,所有這些都是在我們平台的後端實現的,而不是通過一些 WordPress 緩存插件。 這意味著a) 我們使用外部服務器進行存儲,因此我們不會對您的網絡服務器資源造成負擔,並且 b) 我們將數據存儲在內存中,其訪問速度比磁盤快。
無論您的緩存需求和預算如何,我們都可以提供。