日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis系列教程(五):Redis哨兵、复制、集群的设计原理,以及区别

發布時間:2024/7/5 数据库 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis系列教程(五):Redis哨兵、复制、集群的设计原理,以及区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前一篇文章高并發架構系列:Redis為什么是單線程、及高并發快的3大原因詳解談了Redis高并發快的3個原因,本篇主要談Redis的高可用,兩篇合起來就可以把redis的高并發和高可用搞清楚了。

談到Redis服務器的高可用,如何保證備份的機器是原始服務器的完整備份呢?這時候就需要哨兵和復制。

  • 哨兵(Sentinel):可以管理多個Redis服務器,它提供了監控,提醒以及自動的故障轉移的功能。
  • 復制(Replication):則是負責讓一個Redis服務器可以配備多個備份的服務器。
  • Redis正是利用這兩個功能來保證Redis的高可用。

    哨兵(sentinal)

    哨兵是Redis集群架構中非常重要的一個組件,哨兵的出現主要是解決了主從復制出現故障時需要人為干預的問題。

    1.Redis哨兵主要功能

    (1)集群監控:負責監控Redis master和slave進程是否正常工作

    (2)消息通知:如果某個Redis實例有故障,那么哨兵負責發送消息作為報警通知給管理員

    (3)故障轉移:如果master node掛掉了,會自動轉移到slave node上

    (4)配置中心:如果故障轉移發生了,通知client客戶端新的master地址

    2.Redis哨兵的高可用

    原理:當主節點出現故障時,由Redis Sentinel自動完成故障發現和轉移,并通知應用方,實現高可用性。

  • 哨兵機制建立了多個哨兵節點(進程),共同監控數據節點的運行狀況。
  • 同時哨兵節點之間也互相通信,交換對主從節點的監控狀況。
  • 每隔1秒每個哨兵會向整個集群:Master主服務器+Slave從服務器+其他Sentinel(哨兵)進程,發送一次ping命令做一次心跳檢測。
  • 這個就是哨兵用來判斷節點是否正常的重要依據,涉及兩個新的概念:主觀下線和客觀下線。

    1. 主觀下線:一個哨兵節點判定主節點down掉是主觀下線。

    2.客觀下線:只有半數哨兵節點都主觀判定主節點down掉,此時多個哨兵節點交換主觀判定結果,才會判定主節點客觀下線。

    3.原理:基本上哪個哨兵節點最先判斷出這個主節點客觀下線,就會在各個哨兵節點中發起投票機制Raft算法(選舉算法),最終被投為領導者的哨兵節點完成主從自動化切換的過程。

    Redis 復制(Replication)

    Redis為了解決單點數據庫問題,會把數據復制多個副本部署到其他節點上,通過復制,實現Redis的高可用性,實現對數據的冗余備份,保證數據和服務的高度可靠性。

    1.數據復制原理(執行步驟)

    ①從數據庫向主數據庫發送sync(數據同步)命令。

    ②主數據庫接收同步命令后,會保存快照,創建一個RDB文件。

    ③當主數據庫執行完保持快照后,會向從數據庫發送RDB文件,而從數據庫會接收并載入該文件。

    ④主數據庫將緩沖區的所有寫命令發給從服務器執行。

    ⑤以上處理完之后,之后主數據庫每執行一個寫命令,都會將被執行的寫命令發送給從數據庫。

    注意:在Redis2.8之后,主從斷開重連后會根據斷開之前最新的命令偏移量進行增量復制。

    Redis 主從復制、哨兵和集群這三個有什么區別

    1.主從模式:讀寫分離,備份,一個Master可以有多個Slaves。

    2.哨兵sentinel:監控,自動轉移,哨兵發現主服務器掛了后,就會從slave中重新選舉一個主服務器。

    3.集群:為了解決單機Redis容量有限的問題,將數據按一定的規則分配到多臺機器,內存/QPS不受限于單機,可受益于分布式集群高擴展性。

    哨兵作用于高可用,集群提高并發量,具體Redis集群方案詳情,可以參考:高并發架構系列:詳解Redis的存儲類型、集群架構、以及應用場景

    你可能也喜歡:

  • Redis系列教程(三):如何解決Redis緩存雪崩、緩存穿透、緩存并發等5大難題
  • Redis系列教程(八):分布式鎖的由來、及Redis分布式鎖的實現詳解
  • Redis系列教程(九):Redis的內存回收原理,及內存過期淘汰策略詳解
  • Redis系列教程(一):Redis緩存的設計、性能、應用與數據集群同步
  • Redis系列教程(六):Redis緩存和MySQL數據一致性方案詳解
  • Redis系列教程(四):Redis為什么是單線程、及高并發快的3大原因詳解

  • 總結

    以上是生活随笔為你收集整理的Redis系列教程(五):Redis哨兵、复制、集群的设计原理,以及区别的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。