我的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伺服器是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');