Varidata 新聞資訊
知識庫 | 問答 | 最新技術 | IDC 行業新聞
Varidata 官方博客

如何配置 Redis 實現物件快取與頁面靜態化

發布日期:2026-07-27
Redis 物件快取與頁面靜態化架構示意圖

你可以在美國伺服器上配置 Redis,把物件和靜態頁面存入記憶體,從而顯著提升網站速度。這樣的架構可以讓網站頁面載入更快,同時減輕伺服器壓力。很多使用者回饋,後台管理頁面載入速度最高可提升 70%,前端頁面可提升約 50%。在高峰時段,Redis 還能將資料庫查詢量減少約 80%。完成這些優化後,你會明顯看到回應時間下降,站點穩定性也隨之提高。為保證安全和效果,務必嚴格按照步驟進行配置。

重點速覽

  • 透過合理配置 Redis,可以顯著加速你的網站:後台管理頁面載入速度最高可提升 70%,前端頁面可提升約 50%。

  • 為了獲得最佳效能,要確保你的伺服器符合 Redis 的最低配置要求,包括足夠的記憶體(RAM)和 CPU 核心數。

  • 在 WordPress 等 CMS 上可以借助外掛輕鬆整合 Redis 物件快取,在高峰時段最多可減少約 80% 的資料庫查詢次數。

  • 為快取內容設定合適的 TTL(Time-To-Live,存活時間),在資料新鮮度和效能之間取得平衡,讓使用者資料保持更新的同時加快網站存取速度。

  • 要定期監控 Redis 的執行情況,例如快取命中率和記憶體使用量,以維護一個高效的快取系統。

啟用 Redis 快取前的準備

系統與伺服器租用環境要求

在配置 Redis 快取之前,需要先確認你的伺服器是否符合最低執行要求。你應重點關注叢集節點數量、CPU 核心數、記憶體(RAM)、儲存以及網路頻寬。下表列出了建置穩定 Redis 環境時的最低配置與建議配置:

專案

最低要求

建議配置

每個叢集的節點數

3 個節點

>= 3 個節點(建議為奇數)

每個節點的 CPU 核心數

2 核

>= 8 核

每個節點記憶體(RAM)

8GB

>= 32GB

暫存儲存空間(Ephemeral storage)

RAM x 2

>= RAM x 4

持久儲存空間(Persistent storage)

RAM x 3

記憶體型 >= RAM x 4

網路頻寬

1G

>= 10G

同時,還要確認你的伺服器租用提供商是否支援 Redis。有些服務商提供原生 Redis 快取支援,可以簡化部署流程並提升效能。下面是幾個常見的選擇:

伺服器租用服務商

核心特性

Northflank

基於 Kubernetes 的託管 Redis、彈性部署、即時監控

AWS ElastiCache

深度整合 AWS、VPC 隔離、無伺服器(Serverless)選項、高級叢集配置

Azure Managed Redis

基於 Redis Enterprise、多種效能等級、原生 Azure 整合

提示:如果希望降低日常維護工作量並提升可靠性,優先選擇提供託管 Redis 服務的伺服器租用商。

權限與相容性

你必須擁有在伺服器上安裝和執行 Redis 的權限。一些共用型伺服器租用方案不允許自行安裝這類元件,因此在開始之前一定要向服務商確認。相容性同樣關鍵,尤其是當你使用 WordPress、Drupal 等 CMS 時。可以按照以下步驟來驗證相容性:

步驟

說明

1

在伺服器上安裝 Redis

2

使用 LSCache 將 Redis 整合到 WordPress 中

3

使用 redis-benchmark 工具驗證安裝情況

外掛與整合方式

如果你使用 WordPress 或其他 CMS,可以透過外掛或整合工具來配置 Redis。這些外掛可以協助你開啟持久化物件快取,從而提升網站速度。下面的表格列出了選擇外掛或整合方案時需要關注的功能:

功能

說明

持久化物件快取(Persistent Object Cache)

提供基於 Redis 的持久化物件快取後端

效能提升

可顯著改善頁面載入速度與整體站點效能

配置選項

可調整連線參數、快取鍵前綴、複寫設定等

相容性

支援 predis、HHVM、PHPRedis、叢集模式以及 WP-CLI

前置條件

需要事先安裝並配置好 Redis

注意:務必先在伺服器上安裝並配置 Redis,再為你的 CMS 安裝任何快取外掛。這樣可以保證整合順利,避免不必要的錯誤。

安裝與配置 Redis

在伺服器上安裝 Redis

在將 Redis 用於快取之前,你需要先完成安裝。具體步驟會因作業系統不同而有所差異。下面分別介紹在 Ubuntu、CentOS 和 Windows 上安裝 Redis 的方法:

Ubuntu:

  1. 更新套件索引:

    sudo apt update
    
  2. 安裝 Redis 服務:

    sudo apt install redis-server
    
  3. 檢查 Redis 服務狀態:

    sudo systemctl status redis
    
  4. 開啟 Redis 組態檔:

    sudo nano /etc/redis/redis.conf
    
  5. 找到並註解掉 bind 127.0.0.1 這一行(如有需要,可允許外部連線)。

  6. 透過新增或修改以下設定來設定密碼:

    requirepass your-strong-password
    
  7. 重新啟動 Redis 讓設定生效:

    sudo systemctl restart redis.service
    

CentOS:

  1. 安裝 EPEL 軟體庫:

    sudo yum install epel-release
    
  2. 安裝 Redis:

    sudo yum install redis
    
  3. 啟動並設定 Redis 開機自動啟動:

    sudo systemctl start redis
    sudo systemctl enable redis
    
  4. 依照前文方式編輯組態檔並設定密碼。

  5. 重新啟動 Redis:

    sudo systemctl restart redis
    

Windows:

Redis 官方並不直接支援 Windows,但你可以使用第三方移植版本,或者在 Linux 子系統(WSL)中執行 Redis。對於絕大多數正式環境而言,建議使用 Linux 伺服器,以獲得更好的穩定性與支援。

提示: 請務必在 Redis 組態檔中設定強密碼,以保護你的資料安全。

驗證 Redis 服務狀態

安裝完成後,需要確認 Redis 服務是否正常執行,可以透過以下步驟進行驗證:

  1. 執行下面的指令測試 Redis 是否有回應:

    redis-cli ping
    

    如果 Redis 正常執行,會回傳:

    PONG
    
  2. 使用 systemctl 再次查看服務狀態:

    systemctl status redis
    

    該指令會顯示 Redis 目前是處於啟動(active)還是未執行(inactive)狀態。

如果看到 “active (running)”,代表 Redis 已經正常運作,可以繼續配置物件快取。如果 Redis 沒有執行,請重新檢查安裝步驟並排查錯誤訊息。

注意: 在開始配置物件快取之前,一定要先確認 Redis 服務已正常啟動,這能避免後續除錯時浪費時間。

配置 Redis 物件快取

現在可以開始配置 Redis 來為你的网站提供物件快取。物件快取會把資料庫查詢結果存放在記憶體中,從而大幅加快重複查詢的速度,並降低資料庫負載。很多使用者在啟用後發現:後台管理頁面載入速度最高可提升 70%,前端頁面可提升約 50%。資料庫查詢數量也可能減少 80% 左右,使網站能更好地因應高併發存取。

針對 WordPress:

  1. 安裝 Redis 物件快取外掛,例如「Redis Object Cache」。

  2. 在 WordPress 後台的 設定 → Redis 中啟用物件快取,或者使用 WP-CLI 指令:

    wp redis enable
    
  3. 開啟 wp-config.php 檔案,新增或調整如下設定項:

    設定項

    說明

    WP_REDIS_HOST

    Redis 伺服器的主機名稱或 IP 位址

    WP_REDIS_PORT

    Redis 使用的連接埠(預設 6379)

    WP_REDIS_PREFIX

    快取鍵的唯一前綴,用於避免鍵名衝突

    WP_REDIS_DATABASE

    Redis 資料庫編號,用於隔離不同環境資料

    WP_REDIS_TIMEOUT

    Redis 連線逾時時長

    WP_REDIS_READ_TIMEOUT

    Redis 讀取逾時時長

    WP_REDIS_PASSWORD

    Redis 驗證密碼(如已設定)

  4. 設定快取過期時間(TTL):

    • 對購物車、使用者工作階段等變化頻繁的資料,使用較短的 TTL(60–300 秒)。

    • 對選單、站點設定等較穩定的資料,使用更長的 TTL,以減少資料庫查詢。

  5. 初始可將最大記憶體(maxmemory)設定為約 256MB,並監控快取命中率及淘汰(eviction)情況。如果在存取高峰期產生大量淘汰紀錄,可適度增加分配給 Redis 的記憶體。

  6. 為不同環境(如測試、預備和正式環境)設定不同的快取鍵前綴,避免互相干擾。

提示: 如果多個應用或環境共用同一個 Redis 執行個體,一定要在 wp-config.php 中精細配置快取鍵前綴和資料庫編號,避免鍵衝突。

其他 CMS 的配置方式與此類似。實際操作時,請參考各自外掛或框架的官方文件。

透過以上步驟,你就可以讓 Redis 為網站提供更快的頁面載入速度、更低的伺服器負載,並顯著改善使用者體驗。

配置 Redis 頁面靜態化

啟用頁面快取

利用 Redis,你還可以快取整頁內容,以極快的速度向使用者提供靜態頁面。這種方法會將已經渲染好的 HTML 存放在記憶體中,當訪客瀏覽頁面時,直接從 Redis 回傳快取結果,而不必每次都重新產生頁面,從而大幅降低伺服器壓力並縮短回應時間。

啟用基於 Redis 的頁面快取時,建議使用「Cache-Aside(旁路快取)」模式。該模式的工作流程是:先檢查 Redis 中是否存在對應的頁面快取,如果沒有,就由應用產生頁面並寫入 Redis,同時設定 TTL,供之後的請求直接使用。

  • 先在 Redis 中檢查是否存在已快取頁面。

  • 如果未命中快取,則由應用產生頁面內容。

  • 將產生的頁面寫入 Redis,並設定合適的 TTL。

  • 將快取頁面回傳給最終使用者。

提示:務必為快取頁面設定 TTL,確保內容定期更新,避免長期使用過期資料。

設定快取鍵與 TTL

你需要為快取的頁面和物件設定安全、合理的 TTL。TTL(存活時間)決定 Redis 中快取資料的保留時長。選擇合適的 TTL 能在資料新鮮度與效能之間取得最佳平衡:TTL 較短,資料越新;TTL 較長,資料庫查詢次數越少、效能越好。

下表給出快取鍵與 TTL 的最佳實務建議:

設定項

建議數值

重要性說明

TTL(熱點資料)

60–300 秒

保持使用者相關資料足夠新鮮,降低髒資料風險

TTL(穩定資料)

1 小時–24 小時

減少對變化不頻繁資料的資料庫查詢

maxmemory

約 256MB(可按需調整)

控制鍵淘汰策略,有助於最佳化命中率

淘汰策略

allkeys-lru 或 volatile-lru

可根據工作階段型或混合型負載進行調整

持久化策略

AOF + RDB(appendfsync everysec)

在較小效能開銷下保證資料持久性

你需要針對不同類型的內容配置合適的 TTL。比如,使用者資料、購物車等「熱點資料」應使用較短 TTL;而靜態頁面、選單等穩定內容可以設定更長 TTL。合理的 maxmemory 和淘汰策略能協助 Redis 更好地管理記憶體並維持高效快取。

  • TTL 決定快取資料的新鮮度。

  • 較短的 TTL 能減少髒資料出現的機會,並有助於最佳化記憶體使用。

  • 合理設定 TTL,可在提升伺服器效能的同時改善使用者體驗。

注意:請根據內容更新頻率靈活調整 TTL,並持續監控快取命中率,適時微調設定以獲得最佳效果。

處理多站台與唯一快取鍵

如果你使用多站台(multisite)架構,必須確保每個站台使用互不衝突的快取鍵。這樣可以防止快取汙染,並保持資料結構清晰。實現唯一快取鍵可以採用以下幾種策略:

  • 前綴策略:為每個站台統一新增站台專屬前綴,例如在快取鍵前加上站台 ID,方便結構化管理,也便於除錯。

  • 雜湊策略:對快取鍵進行雜湊處理,以增強安全性,適用於對敏感資料或法規遵循有較高要求的情境。

  • 複合鍵策略:將站台 ID、頁面類型、版本號等多個元素組合為一個複合鍵,有助於版本控制與快取隔離。

例如,你可以使用類似 site1:homepage 這樣的前綴鍵,或 site2:user:profile:v2 這樣的複合鍵。這些方法都能協助你更好地組織快取,並避免不同站台之間的資料互相干擾。

提示:在多站台環境中,一定要使用唯一前綴或複合鍵結構。這不僅有利於監控快取使用情況,也能提升除錯效率。

你可以在應用層或快取外掛中,透過設定鍵前綴等方式讓 Redis 更好地支援多站台結構。實際細節請參考所用 CMS 的文件中關於自訂快取鍵的說明。

透過上述配置,你就能讓 Redis 高效地分發靜態頁面、保持快取資料新鮮,並安全地支援多站台環境。

監控與最佳化 Redis 快取

監控效能與命中率

為了讓快取長期高效執行,你需要定期監控 Redis 的效能。建議重點關注快取命中率、記憶體使用量以及指令延遲等指標。Better Stack、Sematext Monitoring、Atatus 等監控平台可以協助你蒐集並視覺化這些資料;Prometheus 搭配 Grafana 也非常適合做 Redis 的即時監控儀表板。

  • 持續監控 Redis 伺服器整體健康狀況。

  • 追蹤快取命中率、連線數以及記憶體使用情況。

  • 透過 OpenTelemetry 蒐集用戶端與伺服器端的多層級指標。

快取命中率可以用下面的公式來計算:

  1. 快取命中率 = keyspace_hits / (keyspace_hits + keyspace_misses)

  2. 命中率偏低意味著 Redis 需要更多地回源查詢較慢的資料來源,從而增加整體延遲。

  3. 資料過期和記憶體空間不足都可能導致命中率下降。

快取命中率

說明

> 90%

對於設計合理的資料快取,這是一個理想的目標值。

> 95%

在電商等高併發、高流量情境中也完全可以實現。

提示:儘量將快取命中率維持在 90% 以上,能有效保證站點在高峰期依然維持快速回應。

排查常見問題

當你發現存取變慢或快取未命中時,應及時進行排查。首先檢查你所使用的資料結構是否適合目前的存取模式;其次審查應用程式碼中是否存在低效的 Redis 指令,並以更高效的操作取代。同時注意監控網路延遲,並從基礎架構層面最佳化網路路徑。

  • 根據實際負載最佳化資料結構類型。

  • 審查並取代低效 Redis 指令。

  • 監控 CPU 使用率,並找出執行最耗時的指令。

  • 調校持久化設定,在效能與資料安全之間找到合適平衡點。

  • 實作合適的鎖定模式,安全處理並行存取。

注意:定期排查與最佳化能讓 Redis 快取長期保持高效,避免成為系統瓶頸。

為高流量情境調校 Redis

面對高流量存取時,必須對 Redis 進行有針對性的調校,避免效能出現明顯下滑。可以透過編輯 Redis 組態檔啟用 TCP KeepAlive,利用 Redis Pipelining 提高請求處理效率,並透過調整系統參數 net.core.somaxconn 提升最大連線佇列長度。

調校參數

說明

記憶體管理

啟用 AOF,並選擇合適的 fsync 策略以兼顧持久化和效能。

關閉 Transparent Huge Pages(THP)

使用 echo never > /sys/kernel/mm/transparent_hugepage/enabled 關閉 THP。

啟用 Overcommit Memory

設定 echo 1 > /proc/sys/vm/overcommit_memory 以降低 OOM 風險。

設定 Swappiness

使用 echo 1 > /proc/sys/vm/swappiness 將交換行為降到最低,避免效能下降。

選擇合適的記憶體配置器

使用真實業務資料進行基準測試,以選擇最適合你情境的記憶體配置器。

設定 Maxmemory

redis.conf 中配置 maxmemory,為 Redis 分配合適的可用記憶體。

啟用 TCP KeepAlive

redis.conf 中調整 tcp-keepalive 參數,維持連線穩定。

關閉儲存到磁碟

redis.conf 中註解掉相關 save 設定,減少磁碟 I/O 以提高效能(僅適用於對持久化要求不高的情境)。

設定 TCP Backlog

透過調整 tcp-backlog 參數,讓 Redis 能處理更多併發連線請求。

設定 Maxclients

修改 maxclients 參數,以允許更多同時在線的客戶端連線。

Redis 持久化

結合使用 RDB 做備份與快速重新啟動,同時根據業務需要考慮開啟 AOF 以提升資料安全性。

在高峰期,淘汰策略(eviction policy)也會強烈影響快取效率。你可以根據業務負載選擇合適的策略:

淘汰策略

說明

Transient LRU

優先淘汰即將過期且最近最少使用的鍵。

Allkey LRU

在所有鍵中淘汰最少被存取的鍵,與是否設定過期時間無關。

Transient TTL

根據鍵的 TTL(過期時間)進行淘汰。

Transient Random

在達到記憶體上限時隨機淘汰部分鍵。

No Eviction

不進行任何淘汰,在超出記憶體限制時可能導致 OOM 錯誤。

提示:結合網站實際流量模式合理調整記憶體與淘汰策略,是維持快取穩定高效的關鍵。

到這裡,你已經了解了如何配置 Redis 來實現物件快取與頁面靜態化。透過這些實作,可以顯著提升站點速度與可靠性。大量案例顯示:採用 Cache-Aside 模式並結合高可用節點部署,頁面回應時間通常可以縮短一半左右。要讓快取始終發揮最大效果,請持續執行以下工作:

  • 監控記憶體使用情況、鍵淘汰次數與存取延遲。

  • 定期檢視並調整 TTL 設定,隨著網站規模與存取模式變化適時最佳化。

  • 啟用強安全策略,如 ACL 規則與傳輸加密等。

建議持續關注可靠的快取技術資料與最佳實務文章,及時更新你的配置思路與方案。

常見問題(FAQ)

如何手動清理 Redis 快取?

你可以在終端機中執行以下指令來手動清理 Redis 快取:

redis-cli FLUSHALL

該指令會刪除所有資料庫中的全部鍵,請謹慎使用。

共用型伺服器租用環境可以用 Redis 嗎?

多數共用型伺服器租用方案並不支援 Redis。你需要向服務商確認是否允許使用。如果希望獲得最佳效果,建議選擇支援自訂安裝的 VPS 或雲端伺服器環境。

物件快取與頁面快取有什麼差別?

物件快取主要儲存資料庫查詢結果;頁面快取則保存整頁 HTML 內容。物件快取更適合加速動態內容,而頁面快取則能更快速地回傳完全靜態化的頁面。

如何確認 Redis 快取是否生效?

可以透過以下指令查看快取命中資料:

redis-cli info stats

在輸出結果中找到「keyspace_hits」和「keyspace_misses」欄位。若命中率(keyspace_hits / (keyspace_hits + keyspace_misses))較高,即表示 Redis 快取運作良好。

Redis 適合用於正式環境嗎?安全性如何?

在正確配置的前提下,Redis 完全可以安全用於正式環境。建議至少做到以下幾點:設定強密碼、限制存取 IP 範圍、啟用防火牆策略。與此同時,請務必保持 Redis 版本更新,以即時獲得安全修補程式。

您的免費試用從這裡開始!
聯繫我們的團隊申請實體主機服務!
註冊成為會員,尊享專屬禮遇!
您的免費試用從這裡開始!
聯繫我們的團隊申請實體主機服務!
註冊成為會員,尊享專屬禮遇!
Telegram Teams