ServerAvatar 教學 – 如何在 WordPress 網站上安裝、設定 Redis Object Cache

為了提高網站的頁面載入效能、提高訪客瀏覽網頁的體驗,最關鍵的就是快取技術,而 Redis 則是 WordPress 外取工具中效能最好的選擇之一。

這也是為什麼 Cloudways 在主機上預設安裝了 Redis,而 Cloudways 上架設的 WordPress 網站也都預設安裝了 Redis Object Cache 外掛。

在這篇文章中,我們教大家如何在 ServerAvatar 的 WordPress 網站上安裝、設定 Redis Object Cache 物件快取。

WordPress 網站使用 Redis 的好處

或許您曾經在 WordPress 後台工具 > 網站狀態頁面看過這個「建議改進項目」:

wordpress-object-cache

一般來說,當訪客訪問網站時會對網站請求資料,而背後的動作就是到資料庫查詢並將結果回傳到前端,對動態網站來說這樣的操作相當耗費時間,特別是訪客數量多的時候,平均等候回覆時間會拉長。

使用 Redis 可以對網站後端運作帶來顯著的效能提升、大幅降低等候回覆時間。Redis 會將資料庫查詢與資料結構儲存在快取記憶體中,讓後端的反應速度能跟前端的體驗一樣快。

而這對會員或電商網站的效能提升影響更為顯著。

啟用 Redis Cache 的前置準備

對網站進行重大功能的導入時,第一件事就是對網站進行備份,並創建預備環境 (Staging Environment) 進行測試。

可以參考以下文章的網站備份章節:

參考文章 – 「ServerAvatar 教學 – 輕鬆完成 WordPress 網站遷移、升級主機規格」。

啟用 Redis Cache

步驟一:安裝 Redis Object Cache 外掛

首先,到 WordPress 後台外掛 > 安裝外掛搜尋 Redis Object Cache。

Redis-Object-Cache-plugin

點擊「立即安裝」並「啟用」外掛。

步驟二:設定 Redis Object Cache 外掛

接著到 WordPress 後台設定 > Redis 頁面可以看到 Redis 的狀態為無法連線

redis-object-cache-noauth

在 ServerAvatar 上安裝主機時都會預設安裝 Redis,這裡看到 WordPress 網站上的 Redis Object Cache 外掛無法連上 Redis 服務是因為相關設定還沒完成,我們需要先完成以下步驟。

設定防火牆規則

根據 Redis Object Cache 外掛的官方安裝說明,Redis 服務預設會使用 TCP 的方式透過 127.0.0.1:6379 進行溝通,所以在主機上需要設定防火牆規則,打開 port 6379。

Redis-configure-firewall

取得 Redis 密碼

進入這個 WordPress 網站所屬的主機管理頁面下的 Settings 頁面。

serveravatar-server-settings

Redis Settings 區塊中提供了相關設定:

  • Max Memory
  • Redis Password (將密碼複製保存下來,後面需要用到)
  • Maxmemory Policy
Serveravatar Server Settings Redis Settings

其中 Max Memory 為分配給 Redis 使用的最大記憶體,若設太小,會導致快取頻繁清除進而影響效能,ServerAvatar 的預設值為 256MB。

根據網站類型、流量的不同,可以參考以下建議進行設定。

網站類型預估流量Max Memory 建議設定
小型部落格 / 企業官網<1,000 頁面瀏覽 / 每日64 ~ 128 MB
中型內容網站 / 商店1,000 ~ 10,000 頁面瀏覽 / 每日256 ~ 512 MB
大型商城 / 線上學習網站>10,000 頁面瀏覽 / 每日512 ~ 1 GB+

當然還需要觀察實際 Redis Object Cache 的快取利用率 (hit) 與記憶體使用率進行調整,如果利用率高且使用記憶體低,可以調降 Max Memory。

設定 Redis 密碼與 port number

接著我們將 Redis 的密碼與 port number 設定到 WordPress 網站的 wp-config.php 檔案中。

進入 Applications 下的 WordPress 網站管理介面可以找到 File Manager 功能,在 ServerAvatar 上修改網站資料夾中的檔案相當方便,直接找到 wp-config.php 檔案,點擊進入編輯畫面。

redis-configure

在編輯畫面中,將以下程式碼複製貼到 <?php 下。

/* Redis Object Cache */
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_PASSWORD', '123456789');

「123456789」的部分記得改成剛剛保存下來的密碼。

redis-configure-added

確認 Redis Object Cache 外掛狀態

完成上述設定接著回到 WordPress 後台設定 > Redis 頁面就可以看到 Redis 的狀態變為可以連線了。

redis-object-cache-plugin-ready-to-connect

步驟三:啟用 Redis Object Cache

按下「啟用物件快取」按鈕就完成 Redis Cache 的安裝了,外掛狀態也會變為已連接

Redis-object-cache-connected

後續在WordPress 後台的控制台,或是設定 > Redis 頁面都可以查看 Redis 物件快取的回應時間、記憶體使用大小、快取比率、呼叫次數等指標數據。

查看快取回應時間

redis-object-cache-response-time

查看記憶體使用

Redis Object Cache Data Size

單一主機上多個 WordPress 網站

那麼,如果在一個主機上架設了多個 WordPress 網站,想要在這些 WordPress 網站上都啟用 Redis Cache 是可以的嗎?

不用擔心,在 ServerAvatar 上同一個主機中的多個 WordPress 網站安裝 Redis Cache,網站的 WP_REDIS_PREFIX 都會預設與 WP_CACHE_KEY_SALT 相同 (如下圖),Redis Cache 的運作彼此之間不會產生衝突。

redis-object-cache-diagnose

當然,更好的做法是在前面設定 Redis 密碼與 port number 時,直接替每個網站定義一個獨特的 ID 作為 WP_REDIS_PREFIX 值並指定不同的 WP_REDIS_DATABASE 資料庫索引。

// change the prefix and database for each site to avoid cache data collisions
define( 'WP_REDIS_PREFIX', 'testing-site' );
define( 'WP_REDIS_DATABASE', 0 ); // 0-15

testing-site 的部分改成每個網站各自獨特的 ID 提高易讀性與辨識度,WP_REDIS_DATABASE 的數字則是對每個網站指定不同數字。

2025/10/3 Redis 官方發布了安全性通知,建議網站管理者們盡快將主機上的 Redis 服務版本升到已修補版本 (6.2.20 / 7.2.11 / 7.4.6 / 8.0.4 / 8.2.2 以上)。

此漏洞整體風險來自於 Redis 版本是否允許 Lua 執行,對 ServerAvatar 的使用者來說,Redis 服務使用的 Port 已經在防火牆之後,存取有密碼保護且僅限應用程式本機連線,風險明顯較低,但只要應用程式能對 Redis 執行 Lua,理論上還是有潛在風險可能性。

對 Redis Object Cache 來說,群組清除操作會用到 Lua,可以透過在 wp-config.php 加上 define('WP_REDIS_DISABLE_GROUP_FLUSH', true); 關閉 Lua 群組清除,而這會讓清除快取動作變成 FLUSHDB,DB 索引數字相同的站點都會一併清除快取,因此建議不同網站要使用不同的 WP_REDIS_DATABASE 索引編號。

在主機無法迅速升級底層 Redis 服務版本時,可以使用上述設定做為臨時的配套措施。

Security Advisory: CVE-2025-49844

結語

這樣我們就完成了 ServerAvatar 上 WordPress 網站的 Redis Object Cache 物件快取的安裝了!

使用 ServerAvatar 伺服器控制面板自行管理網站的過程中,我們也持續尋找能夠強化網站安全、增進網站效能的工具,希望這些對大家在自行管理網站上能幫得上忙。

如果有什麼心得、想法或建議,也歡迎大家留言或加入社團一起討論唷!

3 則留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *