Redis 是一種無模式的記憶體鍵值資料儲存,適用於實時應用程式。開發人員可將其用作 NoSQL 資料庫、輔助資料層或計算密集型程序的快取層。
Redis 提供持久儲存,可以快取網站會話狀態和其他資料。將 Redis 用作快取層的應用程式通常會進行一次複雜的資料庫查詢或 API 呼叫,然後快取結果。它可以快速高效地儲存和檢索物件。因此,對於使用更傳統的關係型資料庫伺服器作為主要內容儲存的 WordPress 來說,Redis 是一個絕佳的伴侶。
Redis 命令列介面(CLI)可用於與 WordPress 網站的 Redis 伺服器通訊。使用 Redis CLI(在命令列中以 redis-cli
的形式呼叫),你可以以程式設計方式請求和接收來自 Redis 伺服器的響應,監控在 Redis 例項中執行的命令,檢查例項的延遲,並實時觀察伺服器的狀態。
本教學將向你展示如何將 Redis 與 WordPress 網站整合,並使用 Redis CLI 從終端執行建立、讀取、更新和刪除(CRUD)操作。
使用 DevKinsta 將 Redis 連線到 WordPress
為了將 WordPress 網站連線到 Redis 資料庫,我們使用了 DevKinsta,這是一個免費的一鍵式工具包,用於從本地環境快速啟動、開發和部署 WordPress 網站。
DevKinsta 可以在本地啟動 Docker 化的 WordPress 網站,並提供最新版本的依賴項,包括 Nginx Web 伺服器、PHP 和相容 MySQL 的 MariaDB 資料庫。它還支援 WordPress 的 CLI。
DevKinsta 適用於 Windows、Linux 和 macOS。下載 DevKinsta 時,您可以找到更多有關安裝的資訊。
安裝完成後,使用預設主機棧在本地建立並安裝一個新的 WordPress 網站。
提醒:最初啟動 DevKinsta 時,如果您還沒有安裝 Docker Desktop,它會提示您將其作為一個依賴項來安裝。DevKinsta 使用 Docker Desktop 在容器內建立所有 WordPress 本地環境檔案。
DevKinsta 提供三種本地建立 WordPress 網站的選項:使用預設設定的全新網站、使用自定義設定的新網站,以及將託管在 Kinsta 上的現有網站克隆到本地開發環境。
本教學使用第一個選項,使用預設設定和最新版本的 Nginx、PHP、MariaDB 和 WordPress。
完成這些步驟後,您就可以在 DevKinsta 中檢視新網站的儀表板了:
建立新 WordPress 網站後的 DevKinsta 面板。
注意網站路徑。這是包含本地網站檔案和資料夾的目錄。WP Admin 儀表盤連結顯示在右上角。最後,注意網站主機,即指向新開發網站的 URL。
您可以開啟 Docker Desktop,列出作為 DevKinsta 專案依賴項執行的所有容器。為此,請單擊左側邊欄頂部的 Containers:
Docker Desktop 的 DevKinsta 容器列表。
現在,您的 WordPress 網站和容器依賴項已經啟動並執行,您可以將 Redis 資料庫連線到您的網站了:
- 點選 DevKinsta 中的 “WP Admin” 按鈕,進入 WordPress 管理面板。
- 點選左側的 外掛 選項卡。
- 點選 安裝外掛,然後搜尋 “Redis Object Cache”。
在 WordPress 中搜尋 Redis Object Cache 外掛。
單擊外掛旁邊的立即安裝。然後,單擊 “已安裝外掛” 選項卡,確認外掛已啟用。
安裝 WordPress 外掛,包括 Redis Object Cache。
首次啟用時,Redis Object Cache 外掛會報告無法連線到 Redis 資料庫。我們可以通過在 Docker 中建立一個帶有 Redis 例項的容器來解決這個問題。
讓我們開啟終端,建立一個名為 redisnet 的網路容器,在其中執行 Redis 映象:
docker network create -d bridge redisnet
現在,以獨立容器的形式在該網路容器中構建並執行 Redis 映象:
docker run -d -p 6379:6379 --name demo_redis --network redisnet redis
啟動容器映象後,在 Docker Desktop 中驗證 Redis 映象是否已啟動並執行:
執行 demo_redis 映象的 Docker 桌面。
請記住,您的 WordPress 網站是在 Docker 容器中自動啟動的。您可以確認其容器網路名稱和 ID:
docker network ls
Docker Desktop 中的網路名稱和 ID。
上面,devkinsta_network 的網路 ID 的截斷版本是 d1fa155f7a4d
。我們稍後將使用它。
提示:Docker 中網路和容器的 ID 長度為 64 個字元。一般來說,截斷到前 12 個字元的 ID 對於引用來說足夠唯一。要檢視完整的 ID,請在列出 ID 的命令中使用 -no-trunc 開關。
將 Redis 叢集和伺服器連線到本地 WordPress 網站的一種方法是直接連線 Redis 和 DevKinsta 網路。首先,驗證 Redis 的容器 ID。在這裡,我們使用 Docker 命令來列出容器,並使用 -l
(最新)開關來顯示最近建立的容器:
docker ps -l
Docker 的 ps 命令生成的容器資訊。
在本例中,截斷的容器 ID 顯示為 c3ffc630e44c
。
在下面的命令中使用您的容器 ID 代替我們的 ID,將您的 Redis 容器連線到 DevKinsta 網路。
docker network connect devkinsta_network c3ffc630e44c
你應該已經成功地將 Redis 容器映像新增到 devkinsta_network 中正在執行的容器列表中。要驗證 Redis 容器的網路 IP 地址,請執行以下命令,將 devkinsta_network ID 替換為在專案中使用 network ls
命令找到的 ID:
docker inspect d1fa155f7a4d
終端顯示 docker inspect 命令的部分輸出。
在上圖中,demo_redis 容器的 IP 地址是 172.172.0.6。在繼續連線之前,請在你的專案中記下這個 IP 地址。
導航到本地計算機上 WordPress 網站的根目錄,也就是 DevKinsta 中顯示的網站路徑。用文字編輯器開啟 wp-config.php 檔案,在自定義配置變數部分新增以下程式碼:
define('WP_REDIS_CLIENT', 'predis'); define('WP_REDIS_HOST', '172.172.0.6'); define('WP_REDIS_PORT', '6379');
WP_REDIS_HOST
所使用的 IP 地址,就是你在執行 docker inspect
命令時發現的 demo_redis IP 地址。
這段配置程式碼新增了 Redis 客戶端、主機和埠,這樣外掛就能在與 DevKinsta 相同的 Docker 容器和網路中訪問 Redis 伺服器。
確認外掛已連線並執行:
- 在管理儀表板中導航到 WordPress 外掛頁面。
- 單擊 Redis 物件快取的設定連結。
- 在 “設定” 頁面上,單擊 “Enable Object Cache” 按鈕。
Redis 物件快取是可寫和可訪問的,但需要啟用。
啟用 Redis 物件快取後,其設定頁面將如下所示:
Redis 物件快取設定頁面顯示 Redis 已連線並正在執行。
啟動 Redis CLI
Redis CLI 工具( redis-cli
)與 Redis 伺服器捆綁在一起。你可以在 Windows、macOS 和 Linux 作業系統上安裝 Redis 伺服器。
不過,我們已經在 Docker 中執行了 Redis,因此可以在 demo_redis 容器中啟動 CLI 工具。
上面,當我們使用 docker ps
命令時,我們知道了執行 Redis 映像的容器的 ID。我們的 ID 是 c3ffc630e44c
。我們可以使用這個截斷的 ID 來定位 demo_redis,並在其中啟動一個命令列 shell:
docker exec -it c3ffc630e44c /bin/sh
現在可以呼叫 redis-cli
工具了:
從 Docker 中的 shell 呼叫 redis-cli。
你可以 ping 伺服器來測試連線:
ping
伺服器對 redis-cli 中 ping 的響應。
要使用 Redis 伺服器的 IP 地址和埠連線並測試該連線,請執行以下命令(使用 demo_redis 容器的 IP 地址):
redis-cli -h 172.172.0.6 -p 6379 ping
通過 Redis 伺服器的 IP 地址和埠向其傳送 ping。
你已經成功連線了本地機器和 Docker 容器上的 Redis 伺服器。
接下來,使用 redis-cli
及其 keys *
命令來顯示資料庫中的所有鍵,以驗證你的 WordPress 網站是否在 Redis 快取中儲存了資料:
使用星號萬用字元搜尋檢索 Redis 資料庫中的所有鍵。
可以看到,一些 WordPress 資料已經儲存到了 Redis 快取中。
Redis CLI CRUD 操作
你可以使用 CLI 工具對 Redis 資料庫執行 CRUD 操作。
讓我們來獲取從之前的 Redis CLI keys *
請求中複製的鍵值。
get :u.:~8r]mC->Re/gG!&mGU.[{+;]t7o<H~)c*pcU=Lx_Vs{9JkdxkL:X;M-@Y$Svwp:user_meta:1
Redis 對使用 redis-cli 提出的 “get” 請求的響應。
讓我們呼叫 redis-cli
,使用 set
、get
和 del
命令來建立鍵/值對、查詢新鍵並刪除它,從而操作 Redis 資料庫的內容:
使用 redis-cli 對 Redis 資料庫進行簡單的 CRUD 操作。
上圖中,嘗試檢索一個已刪除鍵的值時,返回值為 nil
。
在使用 Redis CLI 時,還有更多高階操作可用。
小結
Redis CLI 是一種在網站上測試 Redis 命令的簡便方法,然後再將其推送到實時環境中。它還是監控 Redis 例項活動的好方法。
在 Docker 中,Redis 例項將管理資料庫所需的工具(包括 redis-cli
)捆綁在一個容器中。
與此同時,DevKinsta 的 Docker 化方法可以輕鬆地在本地機器上開發 WordPress 網站,然後只需點選幾下滑鼠就能將其部署到生產環境中。
評論留言