色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

詳解Redis主從復制和哨兵機制

汽車玩家 ? 來源:簡書 ? 作者:GGarrett ? 2020-05-03 18:14 ? 次閱讀

1. Redis主從復制

1.1 Redis主從復制

詳解Redis主從復制和哨兵機制

Redis主從復制主要有兩個角色,主機(master)對外提供讀寫功能,從機(slave)對外只提供讀功能,主機定期把數據同步到從機上保證數據一致性。

Redis主機數據同步到從機上有兩種方式,一種是全量同步,另一種是增量同步。

主從復制不會阻塞master,在數據同步時,master還可以繼續處理客戶端請求,因為redis會產生一個新的進程來解決同步問題。

一個redis也可以是從也可以是主(樹狀主從),可以減輕主機壓力。

1.2 Redis主從配置

只需要修改從服務器上的redis.conf文件:

# slaveof 《masterip》 《masterport》

# 表示當前【從服務器】對應的【主服務器】的IP是192.168.10.135,端口是6379。

slaveof 192.168.10.135 6379

啟動主服務器 redis-server redis.conf

進入從服務器文件夾,啟動從服務器

查看主服務器信息:redis-cli -p 6379 info Replication,可以看到有幾個從服務器

1.3 實現原理

redis的主從同步分為兩種,分為全量同步和增量同步。

只有從機第一次連接上主機是全量同步。

斷線重連很有可能觸發全量同步也有可能是增量同步(master判斷runid`是否一致)。

runid

每個redis服務器,不論主服務器還是從服務,都會有自己的運行id。PSYNC runid 這個命令,runid是指上一次復制主服務器的運行id,如果沒有保存這個id,PSYNC的命令會使用”PSYNC ? -1” 這種形式發送給Master,請求主服務器進行全量復制。

offset(復制偏移量)

主服務器和從服務器會分別維護一個復制偏移量,主服務器每次向從服務器傳播N個字節的數據時,就將自己的復制偏移量的值加上N,從服務器每次收到主服務器傳播來的N個字節的數據時,就將自己的復制偏移量值加上N。

詳解Redis主從復制和哨兵機制

復制積壓緩沖區

復制積壓緩沖區是由主服務器維護一個固定長度(fixed-size)先進先出(FIFO)隊列,默認大小是1MB。它主要的作用就是當主服務器進行命令傳播時,不僅將命令發送給所有從服務器,還會將命令入隊到復制積壓緩沖區。如果主服務器向從服務器傳播數據時發生斷線,主服務器會將復制積壓緩沖區偏移量的所有數據都發送給從服務器(發送的是斷線之后的的數據)。

詳解Redis主從復制和哨兵機制

PSYNC執行過程

1.Slave接受從客戶端發送過來的SLAVEOF命令。

當前服務器判斷自己是否保存Master runid是否是第一次復制。

如果是第一次復制那么當前服務器向Master發送PSYNC ? -1命令,主動請求Master進行全量同步。

如果已經父之過Master,那么當前從服務器向Master發送PSYNC runid offset命令。

Master接收到PSYNC 命令后首先判斷runid是否和本機的id一致,如果runid和本機id不一致則返回+FULLRESYNC runid offset命令執行全量同步操作,當前服務器會將runid保存起來,在下次發送PSUNC時使用。

如果判斷runid和本機id一致,Master則會再次判斷offset偏移量和本機的偏移量相差有沒有超過復制積壓緩沖區大小,如果沒有那么就給Slave發送CONTINUE,此時Slave只需要等待Master傳回失去連接期間丟失的命令;

全量同步

Redis的全量同步主要分為三個階段:

同步快照階段:Master創建并發送快照給Slave,Slave再入快照并解析。Master同時將此階段產生的新的命令寫入到積壓緩沖區中。

同步寫緩沖階段:Master向Slave同步存儲在緩沖區的寫操作命令。

同步增量階段:Master向SLave同步寫操作命令。

增量同步

Redis增量同步主要是指Slave完成初始化開始正常工作時,Master發生的寫操作同步到Slave的過程。

通常情況下,Master沒執行一個寫命令就會想Slave發送相同的寫命令,然后Slave接受并執行。

2. 哨兵(sentinel)機制

2.1 哨兵機制介紹

sentinel進程是用于監控Redis集群中Master主服務器工作的狀態。

在Master主服務器發生故障的時候,可以實現Master和Slave服務器的切換,保證系統的高可用。

2.2 為什么要有哨兵機制?

Redis主從復制的缺點:沒有辦法對master進行動態選舉,需要使用Sentinel機制完成動態選舉。

2.3 哨兵的作用

監控(Monitoring):sentinel會不斷檢查Master和Slave是否運行正常。

提醒(Notification):當被監控的某個Redis節點出現問題時, sentinel 可以通過 API向管理員或者其他應用程序發送通知。

自動故障轉移(Automatic failover):當Master不能正常操作時哨兵會開始一次故障轉移。 它會將失效的Master的其中一個Slave升級為新的Master,并讓其他Slave改為復制新的Master。 當客戶端試圖連接失效的Master時,集群會向客戶端顯示新的Master的地址。 Master和Slave切換后,Master的redis.conf、Slave的reids.conf和senisentinel的sentinel.conf配置文件的內容都會相應的改變,即,Master主服務器的redis.conf配置文件中會多一行slaveof的配置,sentinel.conf的監控目標會隨之調換。

2.4 故障判斷原理分析

每個sentinel進程每秒鐘一次的頻率向整個集群中Master、Slave以及其它Sentinel進程發送一個PING命令。

如果一個實例(instance)距離最后一次有效回復PING命令超過down-after-milliseconds選項所指定的值,這個實例會被sentinel進程標記為主觀下線(SDOWN)。

如果一個Master主服務器被標記為主觀下線(SDOWN),則正在監視這個Master主服務器的所有 Sentinel進程要以每秒一次的頻率確認Master主服務器的確進入了主觀下線狀態。

當有足夠數量的 Sentinel進程(大于等于配置文件指定的值)在指定的時間范圍內確認Master主服務器進入了主觀下線狀態(SDOWN), 則Master主服務器會被標記為客觀下線(ODOWN)。

在一般情況下, 每個 Sentinel進程會以每 10 秒一次的頻率向集群中的所有Master主服務器、Slave從服務器發送 INFO 命令。

當Master主服務器被 Sentinel進程標記為客觀下線(ODOWN)時,Sentinel進程向下線的 Master主服務器的所有 Slave從服務器發送 INFO 命令的頻率會從 10 秒一次改為每秒一次。

若沒有足夠數量的 Sentinel進程同意 Master主服務器下線, Master主服務器的客觀下線狀態就會被移除。若 Master主服務器重新向 Sentinel進程發送 PING 命令返回有效回復,Master主服務器的主觀下線狀態就會被移除。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    12

    文章

    9129

    瀏覽量

    85338
  • Redis
    +關注

    關注

    0

    文章

    374

    瀏覽量

    10871
收藏 人收藏

    評論

    相關推薦

    Redis使用重要的兩個機制:Reids持久化和主從復制

    今天這篇文章,我們一起了解 Redis 使用中非常重要的兩個機制:Reids 持久化和主從復制。 我們都知道Redis是一個內存數據庫,在學習主從
    的頭像 發表于 12-18 10:33 ?72次閱讀
    <b class='flag-5'>Redis</b>使用重要的兩個<b class='flag-5'>機制</b>:Reids持久化和<b class='flag-5'>主從復制</b>

    Redis緩存與Memcached的比較

    Redis和Memcached都是廣泛使用的內存數據存儲系統,它們主要用于提高應用程序的性能,通過減少對數據庫的直接訪問來加速數據檢索。以下是對Redis和Memcached的比較,涵蓋了它們的一些
    的頭像 發表于 12-18 09:33 ?104次閱讀

    配置MySQL主從復制和讀寫分離

    配置MySQL主從復制和讀寫分離
    的頭像 發表于 10-23 11:44 ?416次閱讀
    配置MySQL<b class='flag-5'>主從復制</b>和讀寫分離

    主從觸發器和邊沿觸發器的區別

    主從觸發器和邊沿觸發器是數字電路設計中常用的兩種觸發器類型,它們在觸發機制、動作特點、應用場景等方面存在顯著的區別。以下是對兩者區別的詳細闡述。
    的頭像 發表于 08-12 14:50 ?1951次閱讀

    Redis 開源協議調整,我們怎么辦?

    2 024 年 3 月 20 日, Redis 官方宣布,從 Redis 7.4 版本開始,Redis 將獲得源可用許可證 ( RSALv2 ) 和服務器端公共許可證 ( SSPLv1 ) 的雙重
    的頭像 發表于 05-09 22:59 ?429次閱讀
    <b class='flag-5'>Redis</b> 開源協議調整,我們怎么辦?

    Redis開源版與Redis企業版,怎么選用?

    點擊“藍字”關注我們數以千計的企業和數以百萬計的開發人員Redis開源版來構建應用程序。但隨著用戶數量、數據量和地區性的增加,成本、可擴展性、運營和可用性等問題也隨之而來。Redis企業版
    的頭像 發表于 04-04 08:04 ?1052次閱讀
    <b class='flag-5'>Redis</b>開源版與<b class='flag-5'>Redis</b>企業版,怎么選用?

    GaussDB(for Redis) 特性揭秘:多租戶管理

    華為云 GaussDB(for Redis)持續完善企業級增強特性,是名副其實的 "Redis Plus" ,其中很經典的企業級特性是 多租戶能力 ,支持添加只讀賬號、讀寫賬號,且具備強大的 DB
    的頭像 發表于 03-28 22:06 ?743次閱讀
    GaussDB(for <b class='flag-5'>Redis</b>) 特性揭秘:多租戶管理

    GaussDB(for Redis) 特性揭秘:大 key 治理

    ? 從 DBA 的視角看,大 Key 無疑是引起 Redis 線上問題的常見原因。為了解決大 Key 隱患,業務首先要遵守合理的開發規范,減少大 Key 的產生和訪問依賴。但有時大 Key 是在程序
    的頭像 發表于 03-28 22:06 ?663次閱讀
    GaussDB(for <b class='flag-5'>Redis</b>) 特性揭秘:大 key 治理

    新版 Redis 不再“開源”,對使用者都有哪些影響?

    2024 年 3 月 20 日,Redis Labs 宣布從 Redis 7.4 開始,將原先比較寬松的 BSD 源碼使用協議修改為 RSAv2和 SSPLv1協議。該變化意味著 Redis
    的頭像 發表于 03-27 22:30 ?488次閱讀
    新版 <b class='flag-5'>Redis</b> 不再“開源”,對使用者都有哪些影響?

    Redis官方搜索引擎來了,性能炸裂!

    RediSearch 是一個 Redis 模塊,為 Redis 提供查詢、二級索引和全文搜索功能。
    的頭像 發表于 02-21 10:01 ?2324次閱讀
    <b class='flag-5'>Redis</b>官方搜索引擎來了,性能炸裂!

    MongoDB和Redis的技術特性

    Redis作為一個高性能的內存數據存儲系統,能夠提供快速的緩存機制,從而幫助應用承受高并發請求,顯著提高系統響應速度和吞吐量。這與國內互聯網公司推崇的快速迭代和高用戶并發量的特點非常契合。
    的頭像 發表于 02-01 11:42 ?501次閱讀
    MongoDB和<b class='flag-5'>Redis</b>的技術特性

    Redis7單線程與多線程詳解

    主要是指Redis的網絡IO和鍵值對讀寫是由一個線程來完成的。
    的頭像 發表于 01-16 17:33 ?1849次閱讀
    <b class='flag-5'>Redis</b>7單線程與多線程<b class='flag-5'>詳解</b>

    BLE藍牙模塊主從一體功能應用場景詳解

    藍牙模塊支持多種工作模式,如主設備模式、從設備模式、主從一體化工作模式、廣播站模式、Mesh組網模式、廣播模式和iBeacon模式。在眾多工作模式中,主從一體工作模式是最常用的,也是目前較為流行
    的頭像 發表于 01-04 09:19 ?1322次閱讀
    BLE藍牙模塊<b class='flag-5'>主從</b>一體功能應用場景<b class='flag-5'>詳解</b>

    ad復制元件怎么保持編號不變

    復制AD(AutoCAD)元件時,如果要保持編號不變,可以按照以下步驟進行操作: 創建一個元件庫:首先,你需要創建一個元件庫,將你要復制的原始元件添加到庫中。你可以使用AD軟件的“設計中心”或“內容
    的頭像 發表于 12-27 17:07 ?7232次閱讀

    linux下Redis常用命令使用

    redis重啟,緩存數據還在,redis清緩存數據
    的頭像 發表于 12-27 09:56 ?6518次閱讀
    linux下<b class='flag-5'>Redis</b>常用命令使用
    主站蜘蛛池模板: 久久久久久久久久综合情日本 | 免费乱理伦片在线观看八戒| 江苏电台在线收听| 好爽胸大好深好多水| 久久草香蕉频线观| 麻豆成人久久精品二区三区网站| 男女做爽爽爽视频免费软件 | 国产GV无码A片在线观看 | 亚洲欧美色综合影院| 在线天天看片免费视频观看| 99久久中文字幕伊人情人| 大桥未久与黑人中出视频| 国产精品久久久久久亚洲毛片 | 91亚洲精品| 芳草地在线观看免费视频| 国产精品亚洲精品影院| 久草在线在线精品观看99| 男人女人边摸边吃奶边做| 色妹子综合| 亚洲视频免费观看| 99久久亚洲综合精品| 国产3级在线| 精品国产露脸久久AV麻豆| 免费可以看黄的视频s色| 涩涩网站在线看| 夜色88V精品国产亚洲AV| 99久久国产露脸精品竹菊传煤| 叮当成人社区| 久久99国产精品一区二区| 欧美一道本一区二区三区| 午夜福利理论片在线播放| 伊人香蕉在线播放视频免费| 不卡人妻无码AV中文系列APP| 国产精品一区二区在线播放| 麻豆Av国产在线播放| 手机精品在线| 自拍区偷拍亚洲视频| 国产99久久亚洲综合精品西瓜tv | CHINA末成年VIDEO学生| 国产午夜精品自在自线之la| 美女伊人网|