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

redis的主從模式復(fù)制的具體步驟

 更新時(shí)間:2025年10月08日 10:28:47   作者:酷ku的森  
這篇文章給大家介紹redis的主從模式復(fù)制的具體步驟,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,感興趣的朋友一起看看吧

在分布式系統(tǒng)中,希望使用多個(gè)服務(wù)器來部署redis,存在以下幾種redis的部署方式:

1.主從模式 2.主從模式+哨兵模式 3.集群模式

主從模式的優(yōu)點(diǎn):可以實(shí)現(xiàn)讀寫分離,數(shù)據(jù)備份,還能提高讀并發(fā)。

讀取數(shù)據(jù)都在多個(gè)從節(jié)點(diǎn)中進(jìn)行讀

多個(gè)從節(jié)點(diǎn)都是主節(jié)點(diǎn)的備份,如果主節(jié)點(diǎn)掛了,就可以根據(jù)從節(jié)點(diǎn)進(jìn)行數(shù)據(jù)恢復(fù)。

因?yàn)榉?wù)器多了,不再像之前的單點(diǎn)服務(wù)器,在高并發(fā)場景下,也能進(jìn)行讀取數(shù)據(jù)。

主從模式:

假如此時(shí)有3臺(tái)機(jī)器,分別部署了redis-server進(jìn)程。之前一臺(tái)機(jī)器掛了,redis就掛了,但是現(xiàn)在3臺(tái)機(jī)器同時(shí)掛的概率就小了,redis也就不容易掛了。

此時(shí)就可以把其中一個(gè)節(jié)點(diǎn)作為“主節(jié)點(diǎn)”,另外兩個(gè)作為“從節(jié)點(diǎn)”。從節(jié)點(diǎn)就是主節(jié)點(diǎn)的一個(gè)備份,主節(jié)點(diǎn)這邊有什么數(shù)據(jù)修改,都會(huì)把這樣的修改同步到從節(jié)點(diǎn)上。(從節(jié)點(diǎn)就是主節(jié)點(diǎn)的副本)

注意:redis在主從模式中,是不允許修改從節(jié)點(diǎn)的,只能從從節(jié)點(diǎn)讀取數(shù)據(jù)。

主從模式的作用:主要針對“讀操作”進(jìn)行 并發(fā)量和可用性的提高。

寫操作依賴主節(jié)點(diǎn)。但是主節(jié)點(diǎn)只有一個(gè)(如果有多個(gè)主節(jié)點(diǎn),同步數(shù)據(jù)是很麻煩的),在業(yè)務(wù)場景中,讀操作往往就是比寫操作更頻繁。

主從數(shù)據(jù)的同步:

redis提供了psync命令,完成了數(shù)據(jù)同步的過程。

psync不需要咱們手動(dòng)執(zhí)行,redis服務(wù)器會(huì)在建立好主從同步關(guān)系之后,自動(dòng)進(jìn)行psync。

從節(jié)點(diǎn)主動(dòng)執(zhí)行psync,從主節(jié)點(diǎn)這邊拉取數(shù)據(jù)。

pysnc replicationid offset

replicationid 是主節(jié)點(diǎn)生成的,主節(jié)點(diǎn)每次重啟,生成的replicationid都是不同的,當(dāng)從節(jié)點(diǎn)和主節(jié)點(diǎn)建立復(fù)制關(guān)系的時(shí)候,就會(huì)從主節(jié)點(diǎn)這邊獲取到replicationid。

offset 偏移量,主節(jié)點(diǎn)和從節(jié)點(diǎn)都會(huì)維護(hù) 偏移量(整數(shù))

主節(jié)點(diǎn)的偏移量:主節(jié)點(diǎn)會(huì)收到修改操作的命令,這些命令都會(huì)占用幾個(gè)字節(jié),然后主節(jié)點(diǎn)就會(huì)把這些修改命令,字節(jié)數(shù)進(jìn)行累加。

從節(jié)點(diǎn)的偏移量:描述了現(xiàn)在從節(jié)點(diǎn)的數(shù)據(jù)同步到什么位置了。

pysnc這里可以從主節(jié)點(diǎn)獲取全量數(shù)據(jù),也可以獲取一部分?jǐn)?shù)據(jù)。

如果offset這里寫的是-1,就是獲取全量數(shù)據(jù)。

如果offset這里寫的是具體的數(shù)字,就是從當(dāng)前偏移量位置來進(jìn)行獲取。

全量復(fù)制具體步驟:

1.從節(jié)點(diǎn)發(fā)送psync命令給主節(jié)點(diǎn)進(jìn)行數(shù)據(jù)同步,因?yàn)槭堑谝淮芜M(jìn)行復(fù)制,從節(jié)點(diǎn)沒有主節(jié)點(diǎn)的運(yùn)行ID和復(fù)制偏移量,所以發(fā)送psync ?-1。

2.主節(jié)點(diǎn)根據(jù)命令,解析出要進(jìn)行全量復(fù)制,回復(fù)+FULLRESYNC響應(yīng)。

3.從節(jié)點(diǎn)接收主節(jié)點(diǎn)的運(yùn)行信息進(jìn)行保存。

4.主節(jié)點(diǎn)執(zhí)行bgsave進(jìn)行RDB文件的持久化。 

5.主節(jié)點(diǎn)發(fā)送RDB文件給從節(jié)點(diǎn)。從節(jié)點(diǎn)保存RDB數(shù)據(jù)到本地硬盤。

6.主節(jié)點(diǎn)將在生成rdb到接收完成期間執(zhí)行的寫命令,在緩沖區(qū)中,等到從節(jié)點(diǎn)把RDB文件保存完之后,主節(jié)點(diǎn)再將緩沖區(qū)內(nèi)的數(shù)據(jù)補(bǔ)發(fā)給從節(jié)點(diǎn)。補(bǔ)發(fā)的數(shù)據(jù)扔然按照RDB的二進(jìn)制格式追加寫入到已經(jīng)接收到的rdb文件中,保持主從一致性。

7.從節(jié)點(diǎn)清空自身原有的舊數(shù)據(jù)。

8.從節(jié)點(diǎn)加載RDB文件得到與主節(jié)點(diǎn)的一致的數(shù)據(jù)。

9.如果從節(jié)點(diǎn)加載了RDB文件之后,并且開啟了AOF持久化功能,它會(huì)進(jìn)行bgrewriteaof操作,得到最近的AOF文件。

部分復(fù)制的具體步驟:

1.當(dāng)主從節(jié)點(diǎn)之間出現(xiàn)網(wǎng)絡(luò)中斷時(shí),如果超過repi-timeout時(shí)間,主節(jié)點(diǎn)會(huì)認(rèn)為從節(jié)點(diǎn)故障并終止復(fù)制連接。

2.主從連接中斷期間主節(jié)點(diǎn)依然響應(yīng)命令,但這些復(fù)制命令都因網(wǎng)絡(luò)中斷無法及時(shí)發(fā)送給從節(jié)點(diǎn),所以暫時(shí)將這些命令滯留在復(fù)制積壓緩沖區(qū)中。

3.當(dāng)主從節(jié)點(diǎn)網(wǎng)絡(luò)恢復(fù)后,從節(jié)點(diǎn)再次連上主節(jié)點(diǎn)。

4.從節(jié)點(diǎn)將之前保存的replicationid和復(fù)制偏移量作為psync的參數(shù)發(fā)送給主節(jié)點(diǎn)。請求進(jìn)行部分復(fù)制。

5.主節(jié)點(diǎn)接到psync請求后,進(jìn)行必要的驗(yàn)證,隨后根據(jù)offset去復(fù)制積壓緩沖區(qū)查找合適的數(shù)據(jù),并響應(yīng)+COUNTINUE給從節(jié)點(diǎn)。

6.主節(jié)點(diǎn)將需要從節(jié)點(diǎn)同步的數(shù)據(jù)發(fā)送給從節(jié)點(diǎn),最終完成一致性。

實(shí)時(shí)復(fù)制:

從節(jié)點(diǎn)和主節(jié)點(diǎn)已經(jīng)同步好了數(shù)據(jù),但是主節(jié)點(diǎn)會(huì)源源不斷的進(jìn)行收到新的修改數(shù)據(jù)的請求。

主節(jié)點(diǎn)上的數(shù)據(jù)就會(huì)隨之改變。也需要能夠同步到從節(jié)點(diǎn)。從節(jié)點(diǎn)和主節(jié)點(diǎn)會(huì)建立TCP的長連接。

然后主節(jié)點(diǎn)把自己收到的修改數(shù)據(jù)的請求,通過上述連接,發(fā)給從節(jié)點(diǎn),從節(jié)點(diǎn)再根據(jù)這些請求,修改內(nèi)存中的數(shù)據(jù)。

主從復(fù)制的問題:當(dāng)主節(jié)點(diǎn)掛了,只剩下從節(jié)點(diǎn)的時(shí)候,雖然能夠提供讀取數(shù)據(jù)的操作,但是從節(jié)點(diǎn)不能自動(dòng)升級成主節(jié)點(diǎn)。此時(shí)就需要程序員手動(dòng)恢復(fù)主節(jié)點(diǎn)。

到此這篇關(guān)于redis的主從模式復(fù)制的具體步驟的文章就介紹到這了,更多相關(guān)redis主從模式復(fù)制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談Redis哨兵模式的使用

    淺談Redis哨兵模式的使用

    這篇文章主要介紹了淺談Redis哨兵模式的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • redis的2種持久化方案深入講解

    redis的2種持久化方案深入講解

    這篇文章主要給大家介紹了關(guān)于redis的2種持久化方案的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用redis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • RediSearch加RedisJSON大于Elasticsearch的搜索存儲(chǔ)引擎

    RediSearch加RedisJSON大于Elasticsearch的搜索存儲(chǔ)引擎

    這篇文章主要為大家介紹了RediSearch加RedisJSON大于Elasticsearch的王炸使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Redis緩存異常之緩存雪崩問題解讀

    Redis緩存異常之緩存雪崩問題解讀

    文章主要介紹了緩存雪崩、擊穿和穿透問題,以及針對這些問題的解決方法,包括服務(wù)熔斷、服務(wù)降級、請求限流和布隆過濾器等
    2025-01-01
  • Redis總結(jié)筆記(一):安裝和常用命令

    Redis總結(jié)筆記(一):安裝和常用命令

    這篇文章主要介紹了Redis總結(jié)筆記(一):安裝和常用命令,本文著重總結(jié)了常用命令,如對value操作的命令、對String操作的命令、對List操作的命令、對Set操作的命令等,需要的朋友可以參考下
    2015-01-01
  • Redis和數(shù)據(jù)庫雙寫一致性問題的解決方案

    Redis和數(shù)據(jù)庫雙寫一致性問題的解決方案

    文章探討了Redis與數(shù)據(jù)庫雙寫一致性問題,提出四種解決方案:先更新數(shù)據(jù)庫再刪除緩存(推薦),延時(shí)雙刪避免并發(fā)不一致,監(jiān)聽數(shù)據(jù)庫變更實(shí)現(xiàn)最終一致性,加分布式鎖保障強(qiáng)一致,核心原則是優(yōu)先保證數(shù)據(jù)庫正確性,緩存操作可失敗重試,強(qiáng)一致性需犧牲性能
    2025-08-08
  • Redis字典實(shí)現(xiàn)、Hash鍵沖突及漸進(jìn)式rehash詳解

    Redis字典實(shí)現(xiàn)、Hash鍵沖突及漸進(jìn)式rehash詳解

    這篇文章主要介紹了Redis字典實(shí)現(xiàn)、Hash鍵沖突以及漸進(jìn)式rehash的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Redis String 類型和 Hash 類型學(xué)習(xí)筆記與總結(jié)

    Redis String 類型和 Hash 類型學(xué)習(xí)筆記與總結(jié)

    這篇文章主要介紹了Redis String 類型和 Hash 類型學(xué)習(xí)筆記與總結(jié),本文分別對String 類型的一些方法和Hash 類型做了詳細(xì)介紹,需要的朋友可以參考下
    2015-06-06
  • redis中如何做到內(nèi)存優(yōu)化

    redis中如何做到內(nèi)存優(yōu)化

    為了提高數(shù)據(jù)處理效率和降低存儲(chǔ)成本,優(yōu)化數(shù)據(jù)結(jié)構(gòu)和采用高效的存儲(chǔ)策略至關(guān)重要,使用最小存儲(chǔ)形式、整數(shù)編碼、Redis的HyperLogLog等方法可以有效減少內(nèi)存占用,Redis6引入的對象壓縮、設(shè)置合理的過期時(shí)間、數(shù)據(jù)分片
    2024-09-09
  • Redis高可用梳理詳解

    Redis高可用梳理詳解

    高可用的本質(zhì)是有備份,在出現(xiàn)故障的時(shí)候,有backup可以提供服務(wù),本文詳細(xì)介紹了Redis的高可用,感興趣的同學(xué)可以參考閱讀
    2023-05-05

最新評論

印江| 三江| 松潘县| 大宁县| 蕲春县| 长沙县| 蓝山县| 蓝山县| 平乡县| 金门县| 淄博市| 新余市| 金山区| 玉龙| 长泰县| 微博| 兴文县| 兴文县| 奈曼旗| 惠来县| 鄂托克旗| 金溪县| 黄山市| 元谋县| 西昌市| 德兴市| 孙吴县| 巴青县| 喀喇| 禹州市| 澄迈县| 六安市| 台前县| 无为县| 疏附县| 铁岭县| 来安县| 新河县| 海丰县| 陈巴尔虎旗| 高平市|