Redis 是一種開源記憶體資料結構存儲,廣泛用作資料庫、快取和訊息代理。其高性能和靈活性使其成為各個科技領域的熱門選擇。如果您想在 Debian 12 Bookworm、Debian 11 Bullseye 或 Debian 10 Buster 上安裝 Redis,本指南適合您。
Redis 的主要特性
- 快速數據訪問:Redis將資料儲存在記憶體中,從而實現快速檢索。這使其成為快取應用程式的理想選擇。
- 多種資料結構:與傳統的基於表的資料庫不同,Redis 支援各種資料結構,如字串、雜湊、列表和集合。
- 即時訊息傳遞:Redis 提供發布/訂閱訊息傳遞模式,支援即時應用程式通訊。
- 資料持久化:雖然 Redis 主要是記憶體資料庫,但它允許定期將資料保存在磁碟上,從而在速度和耐用性之間實現平衡。
- 可擴充性和可用性:複製、分片和 Redis Sentinel 等功能可確保跨多個節點的高可用性和可擴展性。
Redis 的常見用例
- 快取:Redis 通常用於快取頻繁存取的數據,從而加快檢索時間。
- 會話存儲:它非常適合儲存使用者會話數據,特別是在高流量的 Web 應用程式中。
- 訊息佇列:發布/訂閱功能使 Redis 成為訊息佇列系統的絕佳選擇。
了解 Redis 的功能可以顯著增強您的技術堆疊。即將發布的指南將詳細介紹如何在 Debian 12 Bookworm、Debian 11 Bullseye 或 Debian 10 Buster 上安裝 Redis。我們將介紹兩種安裝方法:一種使用 Debian 的預設儲存庫,另一種使用最新版本的官方 Redis 儲存庫。兩種方法都將使用命令列介面 (CLI) 命令。請繼續關注逐步說明。
Redis 安裝的預先安裝步驟
更新 Debian 系統軟體包
在安裝 Redis 或任何其他軟體之前,第一步是確保系統的軟體包是最新的。這一關鍵的初步步驟有助於減少後續安裝過程中潛在的衝突。它確保所有系統依賴項都是最新的,從而最大限度地減少過時軟體包引起的潛在問題。
在 Debian 系統中,您可以透過在終端機中執行以下命令來完成此操作:
sudo apt update && sudo apt upgrade
安裝 Redis 安裝所需的套件
一旦 Debian 系統軟體包是最新的,您將需要安裝 Redis 安裝所需的特定軟體包。
您可以透過執行以下命令來安裝這些軟體包:
sudo apt install software-properties-common apt-transport-https curl ca-certificates -y
讓我們剖析這個命令以更好地理解它:
sudo apt install
:此命令用於在 Debian 系統上安裝軟體包。software-properties-common
:該軟體包提供了用於安全管理軟體和原始程式碼的特定腳本。apt-transport-https
:該套件對於 apt 套件管理器透過「https」協定檢索套件是必需的。curl
:這是一個使用各種網路協定傳輸資料的命令列工具。它可以幫助下載文件等。ca-certificates
:此包是驗證網站安全性所必需的。它提供了一組憑證授權單位 (CA) 憑證。-y
:此選項會自動對安裝過程中的任何提示回答「是」。
選擇Redis安裝方式
選項 1:使用 APT Debian 儲存庫安裝 Redis
雖然 Debian 在其預設軟體產品中包含 Redis,但該版本可能不是最新的。 Debian 注重穩定性,通常只提供安全性或重要更新。這可能會使 Debian 上的 Redis 版本較舊,但可以說更穩定。如果您打算使用 Redis 不需要最新功能,這可能是完美的途徑。
若要透過此方法安裝 Redis,您需要在終端機中執行以下命令:
sudo apt install redis
這 sudo
指令提供超級使用者權限,同時 apt install redis
將 Redis 軟體包安裝到您的 Debian 系統上。
選項 2:使用 Redis.io APT 儲存庫安裝 Redis
對於需要或想要最新版本的 Redis 的人來說,第二種方法可能更有吸引力。它涉及從官方 Redis.io 存儲庫導入 APT 存儲庫。此儲存庫定期接收錯誤修復、安全性修補程式和功能更新。
導入 Redis.io 儲存庫
首先,導入 GPG 金鑰。 GPG(即 GNU Privacy Guard)有助於安全通訊和資料儲存。 GPG 金鑰驗證資料來源並確保在下載過程中沒有人更改它。
使用此命令導入 GPG 金鑰:
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
Redis.io APT 導入後更新包索引
新增儲存庫後,您需要更新系統的套件索引以了解新來源中可用的套件。透過執行以下命令來執行此操作:
sudo apt-get update
透過APT命令安裝Redis
一切設定完畢後,您可以從 Redis.io 儲存庫安裝 Redis。如果您已經從 Debian 儲存庫安裝了 Redis,您可能會看到升級。以下命令安裝 Redis 以及 Redis 伺服器和工具:
sudo apt install redis redis-server redis-tools
驗證 Redis 安裝
安裝後,最好驗證安裝。您可以使用 apt-cache policy
命令,確認您已經安裝了Redis.io版本。使用方法如下:
apt-cache policy redis
使用以下命令啟動Redis實例並將其設定為在系統啟動時啟動:
sudo systemctl enable redis-server --now
若要驗證 Redis 是否正在運作且沒有錯誤,請使用以下命令:
systemctl status redis-server
該命令提供有關 redis-server
服務,現在應該正在運行。
檢查 Redis:Debian 上的安裝後驗證
監聽埠
預設情況下,Redis 使用連接埠 6379 在 localhost 上偵聽。
ps -ef | grep redis
該命令顯示涉及Redis的正在運行的進程,這應該反映Redis在連接埠6379上的監聽狀態。
Ping 測試 Redis 服務
ping 測試是驗證 Redis 服務是否正常運作的最簡單方法之一。這將建立與您的 Redis 服務的連接,以驗證它是否已啟動、正在運行並準備好回應命令。
首先,使用以下命令連接到 Redis 服務:
redis-cli
運行此命令後,您的終端應顯示 127.0.0.1:6379
,表示您已連接到本機上的 Redis。現在,您可以 ping Redis 服務,如下所示:
ping
退出Redis實例
完成驗證檢查並確認 Redis 正常運作後,輸入以下指令退出 Redis 實例:
exit
我們已經使用 Debian APT 儲存庫或官方 Redis.io APT 儲存庫在 Debian 系統上成功安裝了 Redis。
配置與設定 Redis
Redis 因其靈活性和滿足各種需求的能力而脫穎而出。本部分將指導您調整 Redis 的快取和網路存取以及添加密碼以提高安全性。
存取Redis設定檔
客製化Redis的旅程從位於以下位置的Redis設定檔開始: /etc/redis/redis.conf
。您需要使用文字編輯器開啟此文件,例如 nano
.
執行以下命令來執行以下操作:
sudo nano /etc/redis/redis.conf
指定用於快取的最大內存
Redis 的一個用例是快取資料以提高應用程式效能。若要在 Redis 中為此目的指定特定的記憶體量,請在設定檔後面新增以下行:
maxmemory 500mb
maxmemory-policy allkeys-lru
在此場景中,我們為 Redis 分配了 500 MB 記憶體。您可以根據伺服器的規格和應用程式的要求隨意調整此數量。
一旦分配的記憶體達到容量,Redis 將按照最近最少使用 (LRU) 策略刪除鍵。
設定網路存取
預設情況下,Redis 僅偵聽 localhost 介面。您可以變更此設定以允許 Redis 偵聽所有介面或特定 IP 位址/子網路。
首先,找到設定檔中的第69行。
選項 1:監聽所有網路介面
要讓 Redis 監聽所有網路接口,您可以註解掉 bind
行添加一個 #
在開始時:
# bind 127.0.0.1 ::1
選項 2:綁定到特定 IP 位址或子網
若要將 Redis 綁定到特定 IP 位址或子網,請替換 bind
與您首選的 IP 或子網路一致:
bind 0.0.0.0/0
或者
bind 192.150.5.0/24
將 Redis 綁定到 IP 位址或子網路時,強烈建議強制執行密碼以提高安全性。
強制密碼驗證
若要為您的 Redis 執行個體新增額外的保護層,您可以設定身份驗證密碼。
搜尋以以下內容開頭的行 # requirepass
(第 507 行左右),取消註釋,並設定一個強密碼:
requirepass YourStrongPasswordHere
代替 YourStrongPasswordHere
使用包含大小寫字母、數字和特殊符號的組合的可靠密碼。
提交更改並重新啟動 Redis
對設定檔進行必要的調整後,按儲存更改 Ctrl + O
,然後退出 nano
編輯器按 Ctrl + X
.
最後,重新啟動 Redis 服務以使新設定生效:
sudo systemctl restart redis
此命令請求系統停止Redis服務並立即重新啟動,從而確保Redis在您設定的新設定參數下運作。
為確保Redis服務重新啟動成功並正常運行,可以透過執行以下命令檢查服務狀態:
sudo systemctl status redis
此命令將傳回有關 Redis 服務的信息,包括其狀態(活動或非活動)、正常運行時間以及您之前在確認安裝時可能看到的日誌訊息。
使用 UFW 為 Redis 配置防火牆
保護您的 Redis 伺服器需要設定強大的防火牆。預設情況下,Redis 不包含防火牆。另外,除非您精通 iptables,否則 Debian 不提供開箱即用的防火牆解決方案。但即使您是初學者,也可以使用簡單的方法。此方法涉及簡單防火牆 (UFW),這是一種用戶友好的防火牆工具。
確保 UFW 已安裝
首先,檢查您的 Debian 伺服器是否有 UFW。如果沒有,請使用以下命令進行安裝:
sudo apt install ufw -y
在此命令中, sudo
用於以root權限執行指令, apt install
是安裝軟體包的命令, ufw
是要安裝的套件,並且 -y
是一個選項,它會自動對任何提示回答“是”,從而允許安裝繼續進行而無需進一步的用戶輸入。
啟用 UFW
安裝 UFW 後,必須啟用它才能開始運作並保護您的系統。您可以使用以下命令啟用 UFW:
sudo ufw enable
此命令告訴 UFW 啟動並應用您已設定或將要設定的任何規則。
為Redis配置UFW規則
現在 UFW 已激活,您可以配置它來保護您的 Redis 伺服器。您可能需要根據您的具體情況以及您的 Redis 安裝是獨立伺服器還是叢集的一部分來設定不同的防火牆規則。
對於附加網路 IP 伺服器實例
如果您有想要使用 UFW 保護的獨立 Redis 伺服器,請使用以下命令:
sudo ufw allow proto tcp from <ip address> to any port 6379
在這裡,你替換 <ip address>
與您想要允許連線的伺服器的 IP 位址。此命令告訴 UFW 允許從該 IP 位址到連接埠 6379(Redis 的預設連接埠)上的任何系統的 TCP 連線。
對於具有多個實例的叢集網絡
如果您正在使用 Redis 伺服器集群,則可以允許來自整個子網路的連接。為此,請使用以下命令:
sudo ufw allow proto tcp from <ip address>/24 to any port 6379
在此命令中,替換 <ip address>
與您想要允許連線的子網路的 IP 位址。請注意,此命令意味著對該子網路上的所有裝置的高度信任,因為它向所有裝置開放 Redis 伺服器。因此,僅在確定內部網路安全的情況下才使用此命令。
驗證 UFW 配置
配置 UFW 規則後,確認它們按預期工作至關重要。就像您在本指南開頭對 Redis 伺服器進行 ping 操作以確保其正常運作一樣,您也可以測試新的防火牆規則。您可以使用 redis-cli
命令:
redis-cli -h <ip address> ping
再次更換 <ip address>
與您的 Redis 伺服器的 IP 位址。如果您的防火牆規則已正確設定並且 Redis 伺服器正常運行,則此命令的輸出應該是一個簡單的 pong
.
在此命令中, redis-cli
是 Redis 的命令列介面, -h
指定主機(您的伺服器的 IP 位址),以及 ping
是檢查與 Redis 伺服器的連接的命令。
解釋輸出
的輸出 redis-cli
命令將協助您確認防火牆規則是否如預期般運作。
pong
這個輸出是一個好兆頭。 A pong
回應表示 Redis 伺服器可存取並準備好接受命令。它確認您在 UFW 中設定的防火牆規則正常運作,允許伺服器按預期進行通訊。
其他 Redis 設定範例
如前所述,Redis 是一種靈活的內存資料存儲,具有許多功能。它可用於快取和訊息傳遞。更改其設定檔可以讓 Redis 按照您想要的方式運作。在這裡,我們將展示 Redis 的更多配置選項。
設定鍵值過期策略
若要為 Redis 中的鍵設定預設生存時間 (TTL),請變更設定檔中的 maxmemory-policy 和 maxmemory-samples 設定。使用以下命令開啟該檔案:
sudo nano /etc/redis/redis.conf
尋找 maxmemory-policy
設定並根據您的喜好進行配置。例如,如果您希望建立一個根據最近最少使用 (LRU) 演算法使金鑰過期的策略,請按如下方式更新配置:
maxmemory-policy volatile-lru
接下來,找到 maxmemory-samples
環境。這將決定 Redis 應審查以得出驅逐決定的樣本數量:
maxmemory-samples 5
啟用 TCP 保活
啟動 TCP keepalive 有助於偵測和關閉空閒連接,從而釋放寶貴的系統資源。找到 tcp-keepalive
設定在 /etc/redis/redis.conf
文件來啟用它:
tcp-keepalive 300
在本例中,我們將保活間隔設定為 300 秒。您應該根據伺服器的要求和條件調整此數字。
設定慢日誌監控
慢日誌為找出效能問題提供了寶貴的機制。他們透過記錄超過指定持續時間的查詢來實現這一點。找出 slowlog-log-slower-than
和 slowlog-max-len
設定中的 /etc/redis/redis.conf
配置慢日誌的檔案:
slowlog-log-slower-than 10000
slowlog-max-len 128
上面的範例將 Slowlog 閾值設定為 10,000 微秒(相當於 10 毫秒)。慢速日誌將保留 128 個最新條目。您應該調整這些值以滿足您的特定要求和條件。
啟用 Redis 事件通知
Redis 可以為特定事件建立通知,為監控和調試提供強大的工具。若要啟動事件通知,請找到 notify-keyspace-events
設定在 /etc/redis/redis.conf
文件:
notify-keyspace-events ExA
在這裡,我們將 Redis 配置為針對過期和逐出的金鑰發送通知。 Redis 官方文件是一個綜合資源,提供有關事件通知和可用選項的更多資訊。
調整Redis日誌記錄級別
為了更好地排除故障和監控 Redis,請變更其日誌記錄等級。您可以透過調整日誌等級設定在 /etc/redis/redis.conf 檔案中執行此操作:
loglevel notice
我們已將預設日誌記錄等級設定為「通知」。其他選項包括“調試”、“詳細”、“通知”和“警告”。選擇最適合您需求的等級。
sudo systemctl restart redis-server
此命令將重新啟動 Redis,並且變更將生效。
結束語
我們介紹了在 Debian 12、11 或 10 伺服器上安裝和設定 Redis。這包括初始安裝、安全防火牆配置以及其他自訂選項。 Redis 有多種配置選擇,讓您可以調整其效能和行為來滿足您的需求。