最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

redis集群就是多個(gè)redis節(jié)點(diǎn)一起工作的模式。它沒(méi)有代理節(jié)點(diǎn)和中心節(jié)點(diǎn),各個(gè)節(jié)點(diǎn)平等,強(qiáng)化redis的讀寫(xiě)能力。

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

1、集群模式

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

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

1.描述

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

如下圖所示:

2.原理:

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

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

如下圖所示:

3.優(yōu)點(diǎn):

  • 提高可用性:如果主節(jié)點(diǎn)宕機(jī),可以快速將一個(gè)從節(jié)點(diǎn)提升為主節(jié)點(diǎn)。
  • 提高性能:可以把讀取請(qǐng)求分配給從節(jié)點(diǎn),減少主節(jié)點(diǎn)的負(fù)載。

4.缺點(diǎn)

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

1.2. Redis 集群模式(Cluster Mode)

1.描述

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

如下圖所示:

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

2.工作原理

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

如下圖所示:

3.優(yōu)點(diǎn)

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

4.缺點(diǎn)

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

1.3. 哨兵模式(Sentinel Mode)

1.描述

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

如下圖所示:

2.工作原理

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

如下圖所示:

3.優(yōu)點(diǎn)

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

4.缺點(diǎn)

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

1.4. Redis Cluster + Sentinel

1.描述

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

2.應(yīng)用場(chǎng)景

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

3.優(yōu)點(diǎn):

1、將數(shù)據(jù)自動(dòng)切分(split)到多個(gè)節(jié)點(diǎn)

2、當(dāng)集群中的某一個(gè)節(jié)點(diǎn)故障時(shí),redis還可以繼續(xù)處理客戶端的請(qǐng)求。

總結(jié):

Redis 提供的多種集群模式適用于不同的場(chǎng)景:

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

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

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

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

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

如下圖所示:

每個(gè) Slave 都是對(duì)應(yīng) Master 的備份。當(dāng) Master 節(jié)點(diǎn)發(fā)生故障時(shí),對(duì)應(yīng)的 Slave 節(jié)點(diǎn)會(huì)自動(dòng)升級(jí)為新的 Master,保持?jǐn)?shù)據(jù)的可用性。

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

主節(jié)點(diǎn)(Master Nodes):

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

從節(jié)點(diǎn)(Replica Nodes):

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

2.2、整體配置

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

  • 3 個(gè)主節(jié)點(diǎn)
  • 3 個(gè)從節(jié)點(diǎn)

2.3、理由

  • 主節(jié)點(diǎn): 提供讀寫(xiě)服務(wù),負(fù)責(zé)處理客戶端請(qǐng)求和數(shù)據(jù)存儲(chǔ)。
  • 從節(jié)點(diǎn): 作為主節(jié)點(diǎn)的數(shù)據(jù)備份,提供數(shù)據(jù)副本和讀取負(fù)載分擔(dān)。

2.4、故障恢復(fù)

在以上配置中:

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

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

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

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

3. 單主多從

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

3.1、優(yōu)勢(shì)

容錯(cuò):

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

負(fù)載均衡:

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

節(jié)省資源:

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

4. 配置實(shí)例

4.1、單主雙從

非常適合讀取較多,但對(duì)寫(xiě)入頻率要求不高的場(chǎng)景。

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

4.2、3 主 3 從

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

5. 選擇配置

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

系統(tǒng)負(fù)載:

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

冗余需求:

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

成本和資源:

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

總結(jié)

3 主節(jié)點(diǎn) + 3 從節(jié)點(diǎn)的配置是確保高可用性的最小標(biāo)準(zhǔn)配置。

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

相關(guān)文章

  • redis事務(wù)執(zhí)行常用命令及watch監(jiān)視詳解

    redis事務(wù)執(zhí)行常用命令及watch監(jiān)視詳解

    這篇文章主要為大家介紹了redis事務(wù)執(zhí)行常用命令及watch監(jiān)視詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • 淺談Redis中bind的坑

    淺談Redis中bind的坑

    本文主要介紹了淺談Redis中bind的坑,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Redis生成分布式系統(tǒng)全局唯一ID的實(shí)現(xiàn)

    Redis生成分布式系統(tǒng)全局唯一ID的實(shí)現(xiàn)

    在互聯(lián)網(wǎng)系統(tǒng)中,并發(fā)越大的系統(tǒng),數(shù)據(jù)就越大,數(shù)據(jù)越大就越需要分布式,本文主要介紹了Redis生成分布式系統(tǒng)全局唯一ID的實(shí)現(xiàn),感興趣的可以了解一下
    2021-10-10
  • Redis安裝使用RedisJSON模塊的方法

    Redis安裝使用RedisJSON模塊的方法

    在使用Redis中,我們可以使用大量的Redis模塊來(lái)擴(kuò)展Redis的功能,本文主要介紹了Redis安裝使用RedisJSON模塊的方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2022-03-03
  • Redis之如何實(shí)現(xiàn)用戶關(guān)注

    Redis之如何實(shí)現(xiàn)用戶關(guān)注

    這篇文章主要介紹了Redis之如何實(shí)現(xiàn)用戶關(guān)注問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • python中使用redis用法詳解

    python中使用redis用法詳解

    Redis擁有豐富的數(shù)據(jù)結(jié)構(gòu),擁有事務(wù)功能,保證命令的原子性。由于是內(nèi)存數(shù)據(jù)庫(kù),讀寫(xiě)非常高速,可達(dá)10w/s的評(píng)率,所以一般應(yīng)用于數(shù)據(jù)變化快、實(shí)時(shí)通訊、緩存等。這篇文章給大家講解一下Python如何使用Redis,并進(jìn)行相關(guān)的實(shí)戰(zhàn)操作。
    2022-12-12
  • redis-cli -p 6379 info命令詳解

    redis-cli -p 6379 info命令詳解

    這篇文章主要介紹了redis-cli -p 6379 info命令詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Redis分布式鎖解決超賣(mài)問(wèn)題的使用示例

    Redis分布式鎖解決超賣(mài)問(wèn)題的使用示例

    超賣(mài)問(wèn)題通常出現(xiàn)在多用戶并發(fā)操作的情況下,即多個(gè)用戶嘗試購(gòu)買(mǎi)同一件商品,導(dǎo)致商品庫(kù)存不足或者超賣(mài),本文就來(lái)介紹一下超賣(mài)問(wèn)題,感興趣的可以了解一下
    2023-09-09
  • 基于redis+lua進(jìn)行限流的方法

    基于redis+lua進(jìn)行限流的方法

    這篇文章主要介紹了基于redis+lua進(jìn)行限流,通過(guò)實(shí)例代碼詳細(xì)介紹了lua+redis進(jìn)行限流的做法,開(kāi)發(fā)環(huán)境使用idea+redis+lua,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Redis數(shù)據(jù)備份與恢復(fù)方式的五種方式

    Redis數(shù)據(jù)備份與恢復(fù)方式的五種方式

    本文主要介紹了Redis數(shù)據(jù)備份與恢復(fù)方式,包含了五種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07

最新評(píng)論

栾城县| 弥渡县| 蓬莱市| 离岛区| 瑞安市| 本溪市| 册亨县| 苍山县| 盖州市| 和平县| 上高县| 郁南县| 叙永县| 吐鲁番市| 辽宁省| 炉霍县| 汉寿县| 内丘县| 峡江县| 应城市| 马公市| 永城市| 莫力| 嘉峪关市| 苗栗市| 桑植县| 兴国县| 文水县| 循化| 枞阳县| 松桃| 察雅县| 嘉鱼县| 恩施市| 奎屯市| 天气| 仁化县| 田东县| 甘洛县| 城口县| 桐乡市|