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

Redis三種集群模式詳解

 更新時間:2021年10月02日 09:44:37   作者:coffeebabe  
redis有三種集群模式,其中主從是最常見的模式,今天通過本文給大家分享Redis三種集群模式介紹,感興趣的朋友一起看看吧

三種集群模式

  • redis有三種集群模式,其中主從是最常見的模式。
  • Sentinel 哨兵模式是為了彌補主從復制集群中主機宕機后,主備切換的復雜性而演變出來的。哨兵顧名思義,就是用來監(jiān)控的,主要作用就是監(jiān)控主從集群,自動切換主備,完成集群故障轉移。
  • cluster 模式是redis官方提供的集群模式,使用了Sharding 技術,不僅實現(xiàn)了高可用、讀寫分離、也實現(xiàn)了真正的分布式存儲。

一、主從復制

redis主從復制

1、reids主從模式

2、redis復制原理

redis 的復制分為兩部分操作 同步(SYNC)和 命令傳播(command propagate)

  • 同步(SYNC)用來將從服務器的狀態(tài) 更新到 和主服務器 一致。白話文解釋就是從服務器主動獲取 主服務器的數(shù)據(jù)。保持數(shù)據(jù)一致。具體實現(xiàn)是,主服務器收到SYNC命令后,生成RDB快照文件,然后發(fā)送給從服務器。
  • 命令傳播 (command propagate)用于在主服務器數(shù)據(jù)被修改后,主從不一致,為了讓從服務器保持和主服務器狀態(tài)一致,而做的命令傳播。白話文解釋就是主服務器收到客戶端修改數(shù)據(jù)命令后,數(shù)據(jù)庫數(shù)據(jù)發(fā)生變化,同時將命令緩存起來,然后將緩存命令發(fā)送到從服務器,從服務器通過載入緩存命令來達到主從數(shù)據(jù)一致。這就是所謂的命令傳播。
  • 為什么需要有同步和命令傳播的兩種復制操作: 當只有同步操作時候,那么在從服務器向主服務器發(fā)送SYNC命令時候,主服務器在生成RDB快照文件時候,仍然會收到客戶端的命令修改數(shù)據(jù)狀態(tài),這部分數(shù)據(jù)如果不能傳達給從服務器,那么就會出現(xiàn)主從數(shù)據(jù)不一致的現(xiàn)象。這時候就出現(xiàn)了命令傳播,主服務器收到從服務器的SYNC命令后,生成RDB快照文件同時,將此段時間內收到的命令緩存起來,然后使用命令傳播的操作發(fā)送從服務器。來達到主從數(shù)據(jù)一致。

3、redis主從復制原理

上面介紹了redis復制的兩種操作,而redis得主從復制正式基于 同步 和 命令傳播 來實現(xiàn)得。下面兩張圖展示了redis復制的流程:

4、redis主從復制優(yōu)缺點

優(yōu)點:

1、實現(xiàn)讀寫分離,提高了可用性,解決了單機故障2、主從復制期間master和slave都是非阻塞方式,仍然可用。

缺點:

1、master宕機期間,需要手動切換主機,同時會有部分數(shù)據(jù)不能及時同步從服務器,造成數(shù)據(jù)不一致(需要人工手動介入)

2、slave宕機后,多個slave恢復后,大量的SYNC同步會造成master IO壓力倍增(可以手動規(guī)避啟動時間)

3、在線擴容較復雜。

總結:
redis主從復制的優(yōu)點主要是提高了可用性缺點

二、Sentinel 哨兵模式

Sentinel 哨兵Sentinel 哨兵介紹
Sentinel 哨兵本質上是一個運行在特殊模式下的Redis實例,只是初始化的過程和工作與普通的Redis不同,本質上也是一個單獨的進程。
Sentinel 哨兵 是Redis的高可用解決方案:一個或多個Sentinel實例(instance)組成的Sentinel系統(tǒng)(system)可以監(jiān)視任意多個主服務器,以及這些主服務器屬下的所有從服務器,并在主服務器下線時可以自動切換從服務器升級為主服務器。

1、Sentinel系統(tǒng)

下圖是一個簡單的Sentinel系統(tǒng)架構圖,一個Sentinel系統(tǒng)監(jiān)視一個主從集群,其中server1是Redis主服務器,server2/3/4是Redis 從服務器。主從之間利用上面的主從復制來達到主從一致。而Sentinel系統(tǒng)監(jiān)視整個主從集群。

2、Sentinel故障轉移

當Sentinel系統(tǒng)察覺到Server1主服務器下線時,就會終止server2/3/4的復制。

同時Sentinel將server2升級為主服務器,server3/4從新的主服務器進行復制。同時等待server1的再次上線。

Sentinel系統(tǒng)也可以主動降級主服務為從服務器,將從服務器升級為主服務器。

2.1、Sentinel 哨兵監(jiān)控過程

Sentinel 哨兵監(jiān)控集群過程:

  • 命令 Sentinel哨兵通過發(fā)送命令,讓redis服務器返回運行狀態(tài)。發(fā)布訂閱 當主服務器狀態(tài)發(fā)生變化時,Sentinel哨兵通過
  • 發(fā)布訂閱模式通知其他從服務器。

2.2、Sentinel 哨兵故障轉移

Sentinel 故障轉移:

  • 1、Sentinel系統(tǒng)中的Sentinel實例每隔1s就像集群發(fā)送PING命令
  • 2、如果集群中有實例的回復Sentinel實例時間超過了 down-after-milliseconds,那么這個實例就會發(fā)送PING命令的Sentinel實例被主觀下線
  • 3、那么什么時候會客觀下線呢?需要Sentinel系統(tǒng)中其他實例也確認集群中該實例主管下線。
  • 如果master主服務器被標記為主觀下線,則Sentinel系統(tǒng)中監(jiān)視master的Sentinel進程需要以每秒一次的頻率確認Master是否進入主管下線狀態(tài)
  • 4、當有足夠的Sentinel實例(取決于配置)確認Master進入了主管下線,則Master會被標記為客觀下線。

3、Sentinel 哨兵優(yōu)缺點

優(yōu)點:

1、哨兵模式基于主從復制,因此主從復制的優(yōu)點哨兵都具備2、哨兵具備了主從切換和故障轉移,因此集群有了更高的可用性

缺點:

1、Redis較難支持在線擴容,在線擴容比較復雜。

總結:
sentinel 哨兵主要用來監(jiān)控redis主從集群,提高了redis 主從集群的可用性。

三、cluster 模式

redis cluster

1、reids cluster

Redis Cluster是一種服務器 Sharding 技術,redis 3.0版本開始正式提供。
Sentinel基本已經(jīng)實現(xiàn)了高可用,但是每臺機器都存儲相同內容,很浪費內存,所以Redis Cluster實現(xiàn)了分布式存儲。每臺機器節(jié)點上存儲不同的內容。

2、Redis Cluster 數(shù)據(jù)分片原理

redis 數(shù)據(jù)分片使用的是hash slot, redis集群有16384個哈希槽,每個Key通過CRC16校驗后對16384取模來決定放置哪一個槽。
當存取redis key時候,redis會根據(jù)CRC16算法得到一個結果,然后把結果和16384求余,通過這個值去對應得節(jié)點獲取數(shù)據(jù)。
這個時候,應用客戶端實際上只需要連接其中任意一個節(jié)點即可,然后Redis Cluster 中每個節(jié)點都保存了其他節(jié)點得槽信息。這樣當存取key計算完槽之后,通過保存槽信息從配置中獲取節(jié)點信息,然后再去對應得節(jié)點獲取數(shù)據(jù)。

3、Redis Cluster 復制原理

redis-cluster集群引入了主從復制模型,一個主節(jié)點對應一個或者多個從節(jié)點,當主節(jié)點宕機的時候,就會啟用從節(jié)點。當其它主節(jié)點 ping 一個主節(jié)點 A 時,如果半數(shù)以上的主節(jié)點與 A 通信超時,那么認為主節(jié)點 A 宕機了。如果主節(jié)點 A 和它的從節(jié)點 A1 都宕機了,那么該集群就無法再提供服務了

4、redis Cluster 優(yōu)缺點

優(yōu)點:

1、實現(xiàn)了分布式存儲,節(jié)省了內存

到此這篇關于Redis三種集群模式介紹的文章就介紹到這了,更多相關Redis三種集群模式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 關于Redis的讀寫一致問題

    關于Redis的讀寫一致問題

    在項目使用Redis過程中,當數(shù)據(jù)更新時,我們要保證緩存和數(shù)據(jù)庫的一致性,否則會導致很多臟數(shù)據(jù)出現(xiàn),此時我們就要思考如何去進行數(shù)據(jù)更新,本文就給大家講講關于redis的讀寫一致問題,需要的朋友可以參考下
    2023-08-08
  • Redis實現(xiàn)分布式鎖和等待序列的方法示例

    Redis實現(xiàn)分布式鎖和等待序列的方法示例

    這篇文章主要介紹了Redis實現(xiàn)分布式鎖和等待序列的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • Redis哨兵模式在Spring Boot項目中的使用與實踐完全指南

    Redis哨兵模式在Spring Boot項目中的使用與實踐完全指南

    Redis哨兵模式為SpringBoot項目提供高可用Redis管理,實現(xiàn)自動故障轉移與監(jiān)控,通過配置依賴、參數(shù)及最佳實踐(如哨兵節(jié)點數(shù)量、網(wǎng)絡規(guī)劃),可提升系統(tǒng)穩(wěn)定性與可靠性,本文給大家介紹Redis哨兵模式在Spring Boot項目中的使用與實踐,感興趣的朋友跟隨小編一起看看吧
    2025-09-09
  • k8s部署redis集群實現(xiàn)過程實例詳解

    k8s部署redis集群實現(xiàn)過程實例詳解

    這篇文章主要為大家介紹了k8s部署redis集群實現(xiàn)過程實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Redis哨兵集群模式全方位解讀

    Redis哨兵集群模式全方位解讀

    Redis哨兵集群通過心跳檢測實現(xiàn)主從自動故障轉移,當主節(jié)點宕機時,依據(jù)斷開時間、優(yōu)先級、offset和運行ID規(guī)則選舉新主,腦裂問題因網(wǎng)絡分割導致數(shù)據(jù)沖突,可通過配置參數(shù)限制同步延遲和從節(jié)點數(shù)量來避免數(shù)據(jù)丟失
    2025-09-09
  • Redis并發(fā)問題解決方案

    Redis并發(fā)問題解決方案

    在當前的互聯(lián)網(wǎng)環(huán)境中,高并發(fā)業(yè)務場景十分常見,本文就來介紹一下Redis并發(fā)問題解決方案,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • Redis高并發(fā)分布鎖的示例

    Redis高并發(fā)分布鎖的示例

    在分布式系統(tǒng)中,實現(xiàn)分布式鎖是一項常見的需求,本文主要介紹了Redis高并發(fā)分布鎖的示例 ,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Redis請求處理的流程分析

    Redis請求處理的流程分析

    這篇文章主要介紹了Redis?是如何進行請求處理,這篇文章介紹了整個?Redis?的請求處理模型到底是怎樣的。從注冊監(jiān)聽?fd?事件到執(zhí)行命令,到最后將數(shù)據(jù)回寫給客戶端都做了個大概的分析,需要的朋友可以參考下
    2022-07-07
  • redis遠程連接不上的解決辦法

    redis遠程連接不上的解決辦法

    本文主要介紹了redis遠程連接不上的解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • Redis中Bloom filter布隆過濾器的學習

    Redis中Bloom filter布隆過濾器的學習

    布隆過濾器是一個非常長的二進制向量和一系列隨機哈希函數(shù)的組合,可用于檢索一個元素是否存在,本文就詳細的介紹一下Bloom filter布隆過濾器,具有一定的參考價值,感興趣的可以了解一下
    2022-12-12

最新評論

上杭县| 上饶市| 临沂市| 肃宁县| 黄平县| 伊通| 根河市| 西盟| 铁岭市| 包头市| 庆安县| 遂川县| 灵川县| 凉城县| 留坝县| 绵阳市| 广河县| 尉犁县| 岳西县| 石家庄市| 定日县| 石河子市| 耒阳市| 夏津县| 内乡县| 桦川县| 南漳县| 赤壁市| 洪江市| 定兴县| 柳州市| 岳西县| 嘉善县| 威海市| 新竹市| 凤山县| 商水县| 远安县| 连南| 从江县| 灵石县|