WordPress使用Redis做物件快取

Wordpress and Redis

我的WordPress目前僅使用了WP Rocket和Redis Object Cache兩個快取外掛。WP Rocket非常強大,足以應付大多數需求,但並未提供物件快取功能,因此我將這部分交由Redis處理。

Redis是一個記憶體儲存系統,它將常用的資料存放在記憶體中,類似於RamDisk,因此能更迅速地提供所需內容,優於傳統的資料庫。WordPress可以使用Redis儲存資料庫查詢結果、網頁片段以及使用者會話等,減少對資料庫的頻繁查詢,進而提升網站的回應速度。

在Linux環境下安裝Redis有二種方式:一是使用Docker安裝,另一是透過套件管理器(例如apt)進行安裝,各有優缺點,視個人需求選擇。

使用Docker安裝的優勢在於其提供的良好隔離性和便攜性。若需要在開發環境、不同操作系統之間切換,或需要同時使用多個Redis時,Docker更為合適。

透過套件管理器安裝,則能將Redis直接置入系統中進行管理,隨時可以透過套件管理器進行更新,適用於長期運行的環境。本次考量到長期運行,我選擇了透過套件管理器安裝。

首先,在 terminal 下執行以下命令以取得所需套件

$ sudo apt install lsb-release curl gpg

將Redis放入apt來源列表中

$ curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
$ echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

更新apt並安裝Redis

$ sudo apt update
$ sudo apt install redis

將redis-server.service設為開機時啟用

$ sudo systemctl enable redis-server.service

執行redis-server.service

$ sudo systemctl start redis-server.service

這時確定一下Redis的狀態

$ sudo systemctl status redis-server.service

若在Loaded中看到enable,且Active狀態也顯示Running即表示成功。

● redis-server.service - Advanced key-value store
     Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; preset: enabled)
     Active: active (running) since Fri 2023-12-29 21:00:17 CST; 1h 3min ago
       Docs: http://redis.io/documentation,
             man:redis-server(1)
   Main PID: 23247 (redis-server)
     Status: "Ready to accept connections"
      Tasks: 6 (limit: 38126)
     Memory: 11.5M
        CPU: 8.308s
     CGroup: /system.slice/redis-server.service
             └─23247 "/usr/bin/redis-server 0.0.0.0:6379"

Dec 29 21:00:17 debian-pc systemd[1]: Starting redis-server.service - Advanced key-value store...
Dec 29 21:00:17 debian-pc systemd[1]: Started redis-server.service - Advanced key-value store.

修改redis.conf檔,在debian下透過apt安裝,redis.conf檔的路徑在/etc/redis/下,如果沒有特別需求,可採用預設設定。

重新啟動redis-server.service

$ sudo systemctl restart redis-server.service

接下來,返回WordPress的控制台安裝Redis Object Cache外掛。

成功啟用後,可以在物件快取分頁中看到目前狀態。若正常連線,檔案系統與Redis應呈現為綠色,這時即可啟用物件快取功能。

Redis Object Cache

Redis Object Cache預設使用的Redis伺服器是127.0.0.1:6379,如果需要更改伺服器相關設定,例如IP、Port或密碼保護,可以在wp-config.php中根據需求加入以下程式碼,並將IP、PORT或PASSWORD依實際設定值取代

define('WP_REDIS_HOST', 'IP');
define('WP_REDIS_PORT', 'PORT');
define('WP_REDIS_PASSWORD', 'PASSWORD');

發佈留言

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

返回頂端