站長資訊網
        最全最豐富的資訊網站

        總結分享之Redis三種集群模式

        本篇文章給大家帶來了關于Redis的相關知識,redis有三種集群模式,其中主從是最常見的模式,今天通過本文給大家分享Redis三種集群模式介紹,感興趣的朋友一起看看吧,希望對大家有幫助。

        總結分享之Redis三種集群模式

        推薦學習:Redis視頻教程

        三種集群模式

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

        一、主從復制

        redis主從復制

        1、reids主從模式

        總結分享之Redis三種集群模式

        2、redis復制原理

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

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

        3、redis主從復制原理

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

        總結分享之Redis三種集群模式

        總結分享之Redis三種集群模式

        4、redis主從復制優缺點

        優點:

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

        缺點:

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

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

        3、在線擴容較復雜。

        總結:

        redis主從復制的優點主要是提高了可用性缺點

        二、Sentinel 哨兵模式

        Sentinel 哨兵Sentinel 哨兵介紹

        Sentinel 哨兵本質上是一個運行在特殊模式下的Redis實例,只是初始化的過程和工作與普通的Redis不同,本質上也是一個單獨的進程。

        Sentinel 哨兵 是Redis的高可用解決方案:一個或多個Sentinel實例(instance)組成的Sentinel系統(system)可以監視任意多個主服務器,以及這些主服務器屬下的所有從服務器,并在主服務器下線時可以自動切換從服務器升級為主服務器。

        1、Sentinel系統

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

        總結分享之Redis三種集群模式

        2、Sentinel故障轉移

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

        總結分享之Redis三種集群模式

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

        總結分享之Redis三種集群模式

        Sentinel系統也可以主動降級主服務為從服務器,將從服務器升級為主服務器。

        總結分享之Redis三種集群模式

        2.1、Sentinel 哨兵監控過程

        Sentinel 哨兵監控集群過程:

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

        2.2、Sentinel 哨兵故障轉移

        Sentinel 故障轉移:

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

        總結分享之Redis三種集群模式

        3、Sentinel 哨兵優缺點

        優點:

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

        缺點:

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

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

        三、cluster 模式

        redis cluster

        1、reids cluster

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

        總結分享之Redis三種集群模式

        2、Redis Cluster 數據分片原理

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

        3、Redis Cluster 復制原理

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

        推薦學習:Redis視頻教程

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 精品国产一区二区三区久久| 国产成人综合精品一区| 欧美精品亚洲精品日韩| 免费看一级毛片在线观看精品视频 | 日韩一级精品视频在线观看| 日韩精品无码一区二区三区| 久久久久无码精品| 91精品国产人成网站| 国产AV午夜精品一区二区三区| 亚洲欧美精品AAAAAA片| 欧美精品福利在线视频 | 亚洲精品无码永久中文字幕| 国产精品无码无卡无需播放器| 国内精品手机在线观看视频| 国产三级精品三级在线专区1| 亚洲精品乱码久久久久久蜜桃图片 | 国产精品尹人在线观看| 亚洲国产综合91精品麻豆| 91精品在线看| 99精品国产一区二区三区2021| 久久Av无码精品人妻系列| 日韩精品无码免费一区二区三区| 亚洲精品国产精品乱码视色| 亚洲精品专区在线观看| 日本精品视频在线观看| 国产亚洲精品国看不卡| 国产成人99久久亚洲综合精品| 亚洲综合一区二区精品导航| 精品福利资源在线| 欧美国产亚洲精品高清不卡| 欧美精品国产日韩综合在线| 日本久久久精品中文字幕| 欧美精品免费在线| 99久久人人爽亚洲精品美女| 99热这里只有精品国产66| 精品国精品国产| 欧美777精品久久久久网| 99久久国产主播综合精品| 国产精品爱搞视频网站 | 国产精品午夜一级毛片密呀| 国内精品久久久久久久影视麻豆|