欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Redis集群部署模式的不同實現(xiàn)過程

 更新時間:2025年05月13日 09:26:03   作者:找不到、了  
這篇文章主要介紹了Redis集群部署模式的不同實現(xiàn)過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

redis集群就是多個redis節(jié)點一起工作的模式。它沒有代理節(jié)點和中心節(jié)點,各個節(jié)點平等,強化redis的讀寫能力。

是一種分布式集群模式,它允許將數(shù)據(jù)分散存儲在多個節(jié)點上,從而提供了橫向擴展、高可用性和更大存儲容量。

1、集群模式

通過添加服務(wù)器的數(shù)量,提供相同的服務(wù),從而讓服務(wù)器達到一個穩(wěn)定、高效的狀態(tài)。

1.1. 主從復(fù)制模式(Master-Slave Replication)

1.描述

在這種模式下,Redis 實例可以設(shè)置為主節(jié)點(Master)和從節(jié)點(Slave)。主節(jié)點負責處理所有的讀寫請求,從節(jié)點負責部分讀請求,從節(jié)點自動從主節(jié)點進行數(shù)據(jù)復(fù)制。

如下圖所示:

2.原理:

根據(jù)從數(shù)據(jù)集id(繼承master的id)和offset偏移量來進行判斷。

如果是首次同步,會保存master的數(shù)據(jù)集id和offset,同時將rdb文件或者aof文件,發(fā)送baklog命令給從節(jié)點,增量同步數(shù)據(jù)。

如下圖所示:

3.優(yōu)點:

  • 提高可用性:如果主節(jié)點宕機,可以快速將一個從節(jié)點提升為主節(jié)點。
  • 提高性能:可以把讀取請求分配給從節(jié)點,減少主節(jié)點的負載。

4.缺點

  • 寫負載集中在主節(jié)點,可能成為性能瓶頸。
  • 從節(jié)點的延遲:從節(jié)點數(shù)據(jù)同步存在延遲,讀操作可能獲得過時的數(shù)據(jù)。

1.2. Redis 集群模式(Cluster Mode)

1.描述

  • Redis 集群模式是 Redis 提供的分布式數(shù)據(jù)庫解決方案,允許將數(shù)據(jù)分布在多個 Redis 實例上。它支持水平擴展(sharding),使得集群能夠處理的數(shù)據(jù)量遠超個別節(jié)點承載的能力。
  • 每個分片由一組 Master/Slave 節(jié)點管理,而不是依賴于單一節(jié)點的垂直擴展。

如下圖所示:

通常集群模式下:可以進行一主多從、一主一從的方式。下面會進行深入了解。

2.工作原理

  • 數(shù)據(jù)被劃分為 16384 個槽(slot),每個新的數(shù)據(jù)鍵會被映射到這些槽上。
  • 每個主節(jié)點管理一些槽,從節(jié)點負責主節(jié)點的數(shù)據(jù)備份。
  • 使用哈希槽將鍵映射到節(jié)點,確保數(shù)據(jù)均勻分配。

如下圖所示:

3.優(yōu)點

  • 每個節(jié)點獨立處理寫請求,能夠有效分散寫負載。
  • 橫向擴展的方式更加靈活,可以適應(yīng)不同的工作負載和數(shù)據(jù)規(guī)模。

4.缺點

  • 集群管理相對復(fù)雜,要求一致性保證和槽管理。
  • 節(jié)點間的網(wǎng)絡(luò)分裂(network partition)會影響數(shù)據(jù)的可用性。

1.3. 哨兵模式(Sentinel Mode)

1.描述

Sentinel 是 Redis 提供的高可用性解決方案,主要用于監(jiān)控和故障轉(zhuǎn)移。Sentinel 可以監(jiān)控主節(jié)點和從節(jié)點的健康狀態(tài),并在主節(jié)點宕機時進行自動切換。

如下圖所示:

2.工作原理

  • Sentinel 監(jiān)控 Redis 實例的狀態(tài),確定主節(jié)點是否正常。
  • 在主節(jié)點不可用時,Sentinel 會選擇一個從節(jié)點提升為新的主節(jié)點,并更新客戶端的主節(jié)點信息。

如下圖所示:

3.優(yōu)點

  • 提高系統(tǒng)的可靠性和可用性,支持自動故障轉(zhuǎn)移。
  • Sentinel 可以作為集群的監(jiān)控和通知工具,支持集群的維護。

4.缺點

  • 需要更為復(fù)雜的配置和管理。
  • 在多臺 Sentinel 實例中,復(fù)雜的選舉過程可能會產(chǎn)生延遲。

1.4. Redis Cluster + Sentinel

1.描述

結(jié)合使用 Redis 集群和 Sentinel,充分利用二者的優(yōu)勢。Redis 集群處理數(shù)據(jù)分片,Sentinel 監(jiān)控和維護集群的高可用性。

2.應(yīng)用場景

對于大型應(yīng)用,需要高可用性和可擴展性的場景,結(jié)合使用集群模式和 Sentinel 模式。

3.優(yōu)點:

1、將數(shù)據(jù)自動切分(split)到多個節(jié)點

2、當集群中的某一個節(jié)點故障時,redis還可以繼續(xù)處理客戶端的請求。

總結(jié):

Redis 提供的多種集群模式適用于不同的場景:

  • 主從復(fù)制:適用于基礎(chǔ)的數(shù)據(jù)冗余和讀負載分擔。
  • Redis 集群模式:適用于大規(guī)模的數(shù)據(jù)存儲與處理,支持水平擴展。
  • 哨兵模式:確保高可用性,并支持自動故障轉(zhuǎn)移。
  • Redis Cluster + Sentinel:適用于需要高可靠性和可擴展性的復(fù)雜應(yīng)用。

關(guān)于哨兵模式和cluster+哨兵模式區(qū)別

關(guān)于上面幾種模式的區(qū)別,可以得出以下的結(jié)論:

2. 最小節(jié)點配置

在 Redis 集群中,為了確保高可用性和故障恢復(fù),建議至少配置以下節(jié)點:

如下圖所示:

每個 Slave 都是對應(yīng) Master 的備份。當 Master 節(jié)點發(fā)生故障時,對應(yīng)的 Slave 節(jié)點會自動升級為新的 Master,保持數(shù)據(jù)的可用性。

2.1、最小節(jié)點配置

主節(jié)點(Master Nodes):

最少需要 3 個主節(jié)點。這可以確保在某個主節(jié)點失效的情況下,集群仍然能夠提供服務(wù)。

從節(jié)點(Replica Nodes):

至少需要 3 個從節(jié)點,每個主節(jié)點對應(yīng)一個從節(jié)點,用于數(shù)據(jù)備份和故障轉(zhuǎn)移。

2.2、整體配置

因此,最小的集群配置為 6 個節(jié)點:

  • 3 個主節(jié)點
  • 3 個從節(jié)點

2.3、理由

  • 主節(jié)點: 提供讀寫服務(wù),負責處理客戶端請求和數(shù)據(jù)存儲。
  • 從節(jié)點: 作為主節(jié)點的數(shù)據(jù)備份,提供數(shù)據(jù)副本和讀取負載分擔。

2.4、故障恢復(fù)

在以上配置中:

  • 如果一個主節(jié)點失效,集群可以通過從節(jié)點的副本自動進行故障轉(zhuǎn)移(即選舉一個從節(jié)點提升為新的主節(jié)點),確保服務(wù)的持續(xù)可用性。
  • 由于至少有 3 個主節(jié)點,可以保證在最多 1 個主節(jié)點失效的情況下,仍然能夠通過剩余的主節(jié)點維持集群的正常運行。

如果希望更具恢復(fù)能力和負載均衡,可以增加主節(jié)點和從節(jié)點的數(shù)量,常見的做法是保持主從節(jié)點的比例為 1:1。

而對于集群為什么要三個master節(jié)點原因,并且推薦為奇數(shù)?

  • 新master的選舉需要大于半數(shù)的集群master節(jié)點同意才能選舉成功,如果只有兩個master節(jié)點,當其中一個掛了,是達不到選舉新master的條件的。
  • 而奇數(shù)的master節(jié)點更多的是 從節(jié)省機器資源角度出發(fā)。

3. 單主多從

整體結(jié)構(gòu)如下圖所示:

3.1、優(yōu)勢

容錯:

如果主節(jié)點出現(xiàn)故障,Redis 可以提升一個從節(jié)點為新的主節(jié)點。即使有一個主節(jié)點出現(xiàn)故障,仍然有多個從節(jié)點作為冗余,確保數(shù)據(jù)的可靠性和業(yè)務(wù)的持續(xù)性。

負載均衡:

在高讀負載的應(yīng)用場景中,可以將讀取請求分配到從節(jié)點,減輕主節(jié)點的壓力。這種方式可以提高性能,特別是在讀操作遠比寫操作頻繁的情況下。

節(jié)省資源:

對于一些小型應(yīng)用或開發(fā)階段的項目,配置一個主節(jié)點和多個從節(jié)點可以有效利用資源,而不是部署更多的主節(jié)點。

4. 配置實例

4.1、單主雙從

非常適合讀取較多,但對寫入頻率要求不高的場景。

例如,很多數(shù)據(jù)可以讀,但修改數(shù)據(jù)的頻率較低。

4.2、3 主 3 從

更適合需要高可用性的系統(tǒng),能夠處理更高的寫負載并提供更強的故障恢復(fù)能力。

5. 選擇配置

在選擇主從節(jié)點配置時,可以考慮以下因素:

系統(tǒng)負載:

  • 寫入負載較重的情況下,建議使用多主。
  • 若以讀取為主,單主多從則較為合適。

冗余需求:

  • 對業(yè)務(wù)連續(xù)性要求較高,建議使用多個主節(jié)點,在高可用性場景下要確保系統(tǒng)穩(wěn)定。

成本和資源:

  • 根據(jù)可用資源和成本預(yù)算,可能會選擇較少的節(jié)點配置,特別是在開發(fā)或小型應(yīng)用中。

總結(jié)

3 主節(jié)點 + 3 從節(jié)點的配置是確保高可用性的最小標準配置。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Redis不是一直號稱單線程效率也很高嗎,為什么又采用多線程了?

    Redis不是一直號稱單線程效率也很高嗎,為什么又采用多線程了?

    這篇文章主要介紹了Redis不是一直號稱單線程效率也很高嗎,為什么又采用多線程了的相關(guān)資料,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 淺談Redis的幾個過期策略

    淺談Redis的幾個過期策略

    在使用redis時,一般會設(shè)置一個過期時間,當然也有不設(shè)置過期時間的,也就是永久不過期。當設(shè)置了過期時間,redis是如何判斷是否過期,以及根據(jù)什么策略來進行刪除的。
    2021-05-05
  • Redis實現(xiàn)全局唯一Id的使用示例

    Redis實現(xiàn)全局唯一Id的使用示例

    全局唯一ID有多個方法可供選擇,其中一種是使用Redis,本文就來介紹一下Redis實現(xiàn)全局唯一Id的使用示例,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • Redis Key的數(shù)量上限及優(yōu)化策略分享

    Redis Key的數(shù)量上限及優(yōu)化策略分享

    Redis 作為高性能的鍵值存儲數(shù)據(jù)庫,廣泛應(yīng)用于緩存、會話存儲、排行榜等場景,但在實際使用中,開發(fā)者常常會關(guān)心一個問題:Redis 的 Key 數(shù)量是否有上限?本文將從 Redis Key 的理論上限 出發(fā),深入探討 Redis Key 的管理策略,需要的朋友可以參考下
    2025-03-03
  • Redisson分布式鎖之加解鎖詳解

    Redisson分布式鎖之加解鎖詳解

    這篇文章主要為大家介紹了Redisson分布式鎖加解鎖的詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • redis分布式鎖的問題與解決方法

    redis分布式鎖的問題與解決方法

    這篇文章主要給大家介紹了關(guān)于redis分布式鎖的問題與解決方法,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用redis具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Redis主從復(fù)制操作和配置詳情

    Redis主從復(fù)制操作和配置詳情

    這篇文章主要介紹了Redis主從復(fù)制操作和配置詳情,文章通過圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • Django使用Redis進行緩存詳細步驟

    Django使用Redis進行緩存詳細步驟

    這篇文章主要介紹了Django使用Redis進行緩存詳細流程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • Redis實現(xiàn)接口防抖的示例代碼

    Redis實現(xiàn)接口防抖的示例代碼

    本文介紹了一種通過AOP、自定義注解和Redis實現(xiàn)的接口防抖技術(shù),這種方法能有效避免因網(wǎng)絡(luò)波動等原因短時間內(nèi)發(fā)送多個請求導(dǎo)致的數(shù)據(jù)重復(fù)添加問題,感興趣的可以了解一下
    2024-10-10
  • 基于Redis實現(xiàn)基本搶紅包算法詳解

    基于Redis實現(xiàn)基本搶紅包算法詳解

    [key, value]的緩存數(shù)據(jù)庫, Redis官方性能描述非常高, 所以面對高并發(fā)場景, 使用Redis來克服高并發(fā)壓力是一個不錯的手段, 本文主要基于Redis來實現(xiàn)基本的搶紅包系統(tǒng)設(shè)計,感興趣的朋友跟隨小編一起看看吧
    2024-04-04

最新評論