使用 Redis 部署高可用性分散式快取

Redis 是用來作為資料庫、快取和訊息中介的開放原始碼記憶體內資料結構存放區。它支援資料結構,例如字串、雜湊、清單、集合、含範圍查詢的已排序集、點陣圖、HyperLogLogs、含半徑查詢的地理空間索引以及串流。

附註:

OCI 提供以及其專屬完全託管的 Redis 服務。您可以在 OCI Cache with Redis 服務頁面找到詳細資訊。

架構

此參照架構顯示在 Oracle Cloud Infrastructure Compute 執行處理上部署 Redis 叢集的典型六節點。

下圖說明此參考架構。

redis-oci-png.png 描述如下
redis-oci-png.png 圖解描述

此架構包含下列元件:

  • 區域

    Oracle Cloud Infrastructure 區域是包含一或多個資料中心 (稱為可用性網域) 的本地化地理區域。區域與其他區域無關,而且大型距離可以區隔 (跨國家或甚至洲)。

  • 可用性網域

    可用性網域是區域內獨立的獨立資料中心。每個可用性網域中的實體資源都會與其他可用性網域中的資源隔離,以提供容錯。可用性網域不會共用基礎架構,例如電源、冷卻或內部可用性網域網路。因此,一個可用性網域的失敗並不會影響區域中的其他可用性網域。

  • 容錯域

    容錯域是一組可用性網域內的硬體和基礎架構。每個可用性網域都有三個具有獨立電源和硬體的容錯域。當您將資源分配到多個容錯域時,應用程式可能會容許容錯域內的實體伺服器故障、系統維護和電源故障。

  • 虛擬雲端網路 (VCN) 和子網路

    VCN 是您在 Oracle Cloud Infrastructure 區域中設定的可自訂軟體定義網路。VCN 就像傳統資料中心網路一樣,可讓您完整控制網路環境。VCN 可以有多個非重疊 CIDR 區塊,供您在建立 VCN 之後變更。您可以將 VCN 區隔為子網路,子網路範圍可為區域或可用性網域。每個子網路均包含一個未與 VCN 中其他子網路重疊的連續位址範圍。您可以在建立子網路之後變更子網路的大小。子網路可以是公用或專用。

    在此架構中,代管 Redis 叢集的所有運算執行處理都會連附至單一區域子網路。

  • 安全清單

    您可以為每個子網路建立安全規則,以指定子網路中必須允許的來源、目的地以及流量類型。

    此架構會新增 TCP 連接埠 16379 和 6379 的輸入規則。連接埠 6379 提供 Redis 從屬端,Redis 叢集匯流排使用連接埠 16379。

推薦

您的需求可能會與此處描述的架構不同。使用下列建議作為起點。

  • 運算資源配置

    此架構使用 Oracle Linux 7。6 作業系統映像檔搭配 VM.Standard2.2 資源配置。如果您的應用程式需要更多記憶體、核心或網路頻寬,您可以選擇不同的資源配置。

  • VCN

    建立 VCN 時,請根據計畫連附至 VCN 中子網路的資源數目,判斷所需的 CIDR 區塊數目和各個區塊的大小。使用標準專用 IP 位址空間內的 CIDR 區塊。

    選取未與想要設定專用連線之任何其他網路 (在 Oracle Cloud Infrastructure 中、您的內部部署資料中心或其他雲端提供者) 重疊的 CIDR 區塊。

    建立 VCN 之後,您可以變更、新增及移除其 CIDR 區塊。

    設計子網路時,請考量您的流量和安全需求。將特定層或角色內的所有資源連附至可作為安全界限的相同子網路。

    使用區域子網路。

考量

  • 擴展性

    確保 Redis 叢集可用性為三個主要節點所需的最小節點數目。此架構會部署三個主要節點和三個複本節點。您可能需要更多節點來滿足應用程式的效能或高可用性需求。

    您可以新增其他運算節點,以水平方式擴展 Redis 叢集。

    您可以變更每個運算節點的 VM 資源配置,以垂直方式縮放 Redis 叢集。挑選核心數目資源配置較高的資源配置,也會增加配置給運算執行處理和網路頻寬的記憶體。

  • 應用程式可用性

    容錯域可在單一可用性網域內提供最佳復原能力。此架構使用另一種高可用性的方法,在具有多個可用性網域的區域中部署執行相同作業的運算執行處理。此設計會透過簡介冗餘來移除單一失敗點。

    建置架構之後,您可以使用 PuTTY 或 Git Bash 之類的 SSH 工具連線到 Redis 節點的公用 IP 位址。您可以使用 Redis 命令行介面 redis-cli 與 Redis 部署互動。

  • 成本

    根據資料庫所需的核心、記憶體以及網路頻寬,選取虛擬機器 (VM) 資源配置。如果您需要更多 Redis 節點的效能、記憶體或網路頻寬,可以透過單核心資源配置開始並於稍後變更 VM 資源配置。

建置

GitHub 中提供部署此參照架構所需的程式碼。只要按一下即可將程式碼提取至 Oracle Cloud Infrastructure Resource Manager,然後建立堆疊並加以部署。或者,從 GitHub 下載程式碼至您的電腦、自訂程式碼,以及使用 Terraform CLI 建置架構。

  • 使用 Oracle Cloud Infrastructure Resource Manager 進行部署:
    1. 一下部署到 Oracle Cloud

      如果您尚未登入,請輸入租用戶和使用者證明資料。

    2. 複查並接受條款與條件。
    3. 選取要建置堆疊的區域。
    4. 依照畫面上的提示和指示建立堆疊。
    5. 建立堆疊之後,請按一下 Terraform 動作,然後選取畫。
    6. 等待工作完成,然後複查計劃。

      若要進行任何變更,請返回「堆疊詳細資訊」頁面,按一下編輯堆疊,然後進行必要的變更。然後,再次執行「劃」動作。

    7. 如果不需要進一步的變更,請返回「堆疊詳細資訊」頁面,按一下 Terraform 動作,然後選取用。
  • 使用 Terraform CLI 部署:
    1. 前往 GitHub
    2. 將程式碼下載或複製到您的本機電腦。
    3. 依照 README.md 中的指示進行。

變更日誌

此日誌僅列出重要的變更: