如何在 Debian 12、11 或 10 上安裝 Redis

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-thanslowlog-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 有多種配置選擇,讓您可以調整其效能和行為來滿足您的需求。

Joshua James
跟我來
Joshua James 的最新帖子 (看全部)

發佈留言