精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

調研Redis高可用兩種方案

新聞 系統運維 Redis
本文作者深入分析了Redis高可用的方方面面,并且做了有效總結,相信對廣大讀者可以起到很好的領路作用。

導讀:Redis是被廣泛使用的基礎軟件之一。對于工程師和,架構師,運維人員來說,了解Redis的高可用方案和背后的原理,是必備的基礎知識。本文作者深入分析了Redis高可用的方方面面,并且做了有效總結,相信對廣大讀者可以起到很好的領路作用。

作者 codedump codedump.info 博主,多年從事互聯網服務器后臺開發工作。可訪問作者博客閱讀 codedump 更多文章。

Redis中為了實現高可用(High Availability,簡稱HA),采用了如下兩個方式:

  • 主從復制數據。

  • 采用哨兵監控數據節點的運行情況,一旦主節點出現問題由從節點頂上繼續進行服務。

主從復制

Redis中主從節點復制數據有全量復制和部分復制之分。

舊版本全量復制功能的實現

全量復制使用snyc命令來實現,其流程是:

  • 從服務器向主服務器發送sync命令。

  • 主服務器在收到sync命令之后,調用bgsave命令生成***的rdb文件,將這個文件同步給從服務器,這樣從服務器載入這個rdb文件之后,狀態就會和主服務器執行bgsave命令時候的一致。

  • 主服務器將保存在命令緩沖區中的寫命令同步給從服務器,從服務器執行這些命令,這樣從服務器的狀態就跟主服務器當前狀態一致了。

調研Redis高可用兩種方案

舊版本全量復制功能,其***的問題是從服務器斷線重連時,即便在從服務器上已經有一部分數據了,也需要進行全量復制,這樣做的效率很低,于是新版本的Redis在這部分做了改進。

新版本全量復制功能的實現

新版本Redis使用psync命令來代替sync命令,該命令既可以實現完整全同步也可以實現部分同步。

復制偏移量

執行復制的雙方,主從服務器,分別會維護一個復制偏移量:

  • 主服務器每次向從服務器同步了N字節數據之后,將修改自己的復制偏移量+N。

  • 從服務器每次從主服務器同步了N字節數據之后,將修改自己的復制偏移量+N。

復制積壓緩沖區

主服務器內部維護了一個固定長度的先進先出隊列做為復制積壓緩沖區,其默認大小為1MB。

在主服務器進行命令傳播時,不僅會將寫命令同步到從服務器,還會將寫命令寫入復制積壓緩沖區。

調研Redis高可用兩種方案

服務器運行ID

每個Redis服務器,都有其運行ID,運行ID由服務器在啟動時自動生成,主服務器會將自己的運行ID發送給從服務器,而從服務器會將主服務器的運行ID保存起來。

從服務器Redis斷線重連之后進行同步時,就是根據運行ID來判斷同步的進度:

  • 如果從服務器上面保存的主服務器運行ID與當前主服務器運行ID一致,則認為這一次斷線重連連接的是之前復制的主服務器,主服務器可以繼續嘗試部分同步操作。

  • 否則,如果前后兩次主服務器運行ID不相同,則認為是完成全同步流程。

psync命令流程

有了前面的準備,下面開始分析psync命令的流程:

  • 如果從服務器之前沒有復制過任何主服務器,或者之前執行過slaveof no one命令,那么從服務器就會向主服務器發送psync ? -1命令,請求主服務器進行數據的全量同步。

  • 否則,如果前面從服務器已經同步過部分數據,那么從服務器向主服務器發送psync <runid> <offset>命令,其中runid是上一次主服務器的運行id,offset是當前從服務器的復制偏移量。

前面兩種情況主服務器收到psync命令之后,會出現以下三種可能:

  • 主服務器返回+fullresync <runid> <offset>回復,表示主服務器要求與從服務器進行完整的數據全量同步操作。其中,runid是當前主服務器運行id,而offset是當前主服務器的復制偏移量。

  • 如果主服務器應答+continue,那么表示主服務器與從服務器進行部分數據同步操作,將從服務器缺失的數據同步過來即可。

  • 如果主服務器應答-err,那么表示主服務器版本低于2.8,識別不了psync命令,此時從服務器將向主服務器發送sync命令,執行完整的全量數據同步。

調研Redis高可用兩種方案

哨兵機制概述

Redis使用哨兵機制來實現高可用(HA),其大概工作原理是:

  • Redis使用一組哨兵(sentinel)節點來監控主從redis服務的可用性。

  • 一旦發現Redis主節點失效,將選舉出一個哨兵節點作為***(leader)。

  • 哨兵***再從剩余的從Redis節點中選出一個Redis節點作為新的主Redis節點對外服務。

以上將Redis節點分為兩類:

  • 哨兵節點(sentinel):負責監控節點的運行情況。

  • 數據節點:即正常服務客戶端請求的Redis節點,有主從之分。

以上是大體的流程,這個流程需要解決以下幾個問題:

  • 如何對Redis數據節點進行監控?

  • 如何確定一個Redis數據節點失效?

  • 如何選擇出一個哨兵***節點?

  • 哨兵節點選擇新的主Redis節點的依據是什么?

以下來逐個回答這些問題。

三個監控任務

哨兵節點通過三個定時監控任務監控Redis數據節點的服務可用性。

info命令

每隔10秒,每個哨兵節點都會向主、從Redis數據節點發送info命令,獲取新的拓撲結構信息。

Redis拓撲結構信息包括了:

  • 本節點角色:主或從。

  • 主從節點的地址、端口信息。

這樣,哨兵節點就能從info命令中自動獲取到從節點信息,因此那些后續才加入的從節點信息不需要顯式配置就能自動感知。

調研Redis高可用兩種方案

向__sentinel__:hello頻道同步信息

每隔2秒,每個哨兵節點將會向Redis數據節點的__sentinel__:hello頻道同步自身得到的主節點信息以及當前哨兵節點的信息,由于其他哨兵節點也訂閱了這個頻道,因此實際上這個操作可以交換哨兵節點之間關于主節點以及哨兵節點的信息。

這一操作實際上完成了兩件事情: * 發現新的哨兵節點:如果有新的哨兵節點加入,此時保存下來這個新哨兵節點的信息,后續與該哨兵節點建立連接。 * 交換主節點的狀態信息,作為后續客觀判斷主節點下線的依據。

調研Redis高可用兩種方案

向數據節點做心跳探測

每隔1秒,每個哨兵節點向主、從數據節點以及其他sentinel節點發送ping命令做心跳探測,這個心跳探測是后續主觀判斷數據節點下線的依據。

調研Redis高可用兩種方案

主觀下線和客觀下線

主觀下線

上面三個監控任務中的第三個探測心跳任務,如果在配置的down-after-milliseconds之后沒有收到有效回復,那么就認為該數據節點“主觀下線(sdown)”。

調研Redis高可用兩種方案

為什么稱為“主觀下線”?因為在一個分布式系統中,有多個機器在一起聯動工作,網絡可能出現各種狀況,僅憑一個節點的判斷還不足以認為一個數據節點下線了,這就需要后面的“客觀下線”。

客觀下線

當一個哨兵節點認為主節點主觀下線時,該哨兵節點需要通過”sentinel is-master-down-by addr”命令向其他哨兵節點咨詢該主節點是否下線了,如果有超過半數的哨兵節點都回答了下線,此時認為主節點“客觀下線”。

調研Redis高可用兩種方案

選舉哨兵***

當主節點客觀下線時,需要選舉出一個哨兵節點做為哨兵***,以完成后續選出新的主節點的工作。

這個選舉的大體思路是:

  • 每個哨兵節點通過向其他哨兵節點發送”sentinel is-master-down-by addr”命令來申請成為哨兵***。

  • 而每個哨兵節點在收到一個”sentinel is-master-down-by addr”命令時,只允許給***個節點投票,其他節點的該命令都會被拒絕。

  • 如果一個哨兵節點收到了半數以上的同意票,則成為哨兵***。

  • 如果前面三步在一定時間內都沒有選出一個哨兵***,將重新開始下一次選舉。

可以看到,這個選舉***的流程很像raft中選舉leader的流程。

調研Redis高可用兩種方案

選出新的主節點

在剩下的Redis從節點中,按照以下順序來選擇新的主節點:

  • 過濾掉“不健康”的數據節點:比如主觀下線、斷線的從節點、五秒內沒有回復過哨兵節點ping命令的節點、與主節點失聯的從節點。

  • 選擇slave-priority(從節點優先級)***的從節點,如果存在則返回不存在則繼續后面的流程。

  • 選擇復制偏移量***的從節點,這意味著這個從節點上面的數據最完整,如果存在則返回不存在則繼續后面的流程。

  • 到了這里,所有剩余從節點的狀態都是一樣的,選擇runid最小的從節點。

調研Redis高可用兩種方案

提升新的主節點

選擇了新的主節點之后,還需要***的流程讓該節點成為新的主節點:

  • 哨兵***向上一步選出的從節點發出“slaveof no one”命令,讓該節點成為主節點。

  • 哨兵***向剩余的從節點發送命令,讓它們成為新主節點的從節點。

  • 哨兵節點集合會將原來的主節點更新為從節點,當其恢復之后命令它去復制新的主節點的數據。

調研Redis高可用兩種方案

如果過程中哨兵***失效怎么辦?

原文地址:

https://www.codedump.info/post/20190409-redis-sentinel/

參考閱讀:

  • 主流微服務注冊中心淺析和對比

  • 一圖了解Google工具棧

  • Facebook F4架構解讀:千億級圖片存儲Haystack的演進

  • 被視為代替Kafka的消息隊列:Apache Pulsar設計簡介

責任編輯:張燕妮 來源: 頭條科技
相關推薦

2010-06-07 17:41:42

Sendmail 配置

2018-06-04 09:43:53

分層存儲Linux

2022-07-22 20:00:01

高可用路由

2018-08-24 09:26:13

Redis高可用方式

2018-08-21 10:32:43

數據庫Redis高可用技術

2010-05-28 09:49:48

MySQL遠程連接

2010-09-30 14:35:36

JS浮點溢出

2010-03-26 18:41:51

Nginx 502錯誤

2010-03-11 10:38:34

Python運算符

2011-12-02 10:10:34

RedisFailover

2019-11-14 08:42:57

Redis數據庫Linux

2010-09-29 10:10:06

J2ME代碼優化

2023-02-13 22:41:24

RedisMQRocketMQ

2011-03-03 10:26:04

Pureftpd

2010-03-11 14:34:47

Python環境

2018-07-10 08:42:45

Oracle高可用集群

2020-01-06 14:54:31

RDBAOFRedis

2010-07-27 13:46:08

DB2提高IMPORT

2014-03-07 14:07:26

Windows 8.1

2009-11-16 13:46:28

PHP上傳文件大小限制
點贊
收藏

51CTO技術棧公眾號

国产乱码精品一区二区| 亚洲精品乱码久久久久久久| 成人欧美在线| 成人精品高清在线| 国产成人av网址| 免费在线观看a级片| 成人av地址| 在线视频一区二区三区| 日本丰满大乳奶| 先锋av资源站| 蜜臀av性久久久久蜜臀aⅴ | 久久欧美肥婆一二区| 久久精彩免费视频| 风间由美一二三区av片| 一级欧美视频| 在线视频你懂得一区| 国产尤物av一区二区三区| 九色网友自拍视频手机在线| 国产福利一区二区三区视频在线| 日本精品一区二区三区在线播放视频 | 8x8x最新地址| heyzo高清在线| 亚洲视频一二区| 日韩欧美第二区在线观看| 成人福利小视频| 蜜桃在线一区二区三区| 欧美性视频在线| 九九热精彩视频| 99欧美视频| 永久免费精品影视网站| 99re这里只有| 久久三级中文| 欧美日韩国产另类不卡| 欧美少妇性生活视频| 国产第一页在线| 亚洲免费观看高清完整版在线| 欧美一区二区三区精美影视| 天天av综合网| 9人人澡人人爽人人精品| 91视频九色网站| 中文字幕 日韩有码| 欧美精品自拍| 九九九久久国产免费| 99久久久免费精品| 日韩在线观看| 伊是香蕉大人久久| 超薄肉色丝袜一二三| 欧美久久精品一级c片| 亚洲欧美中文日韩在线| 国产美女喷水视频| 亚洲三级网页| 亚洲欧美日韩区| 亚洲av综合一区二区| 网曝91综合精品门事件在线| 亚洲成人精品久久久| 国产麻豆xxxvideo实拍| 精品久久ai| 亚洲美女av黄| 亚洲天堂岛国片| 91麻豆精品国产91久久久平台| 在线播放日韩专区| 成人免费黄色小视频| 亚洲一区二区三区| 欧美极品少妇xxxxⅹ喷水| 久久伊人成人网| 国产亚洲欧洲| 国产精品旅馆在线| 97超碰人人草| 国产乱码精品一区二区三区五月婷| 亚洲综合中文字幕在线| 黑人精品一区二区| 久久无码av三级| 日韩精品另类天天更新| 米奇精品一区二区三区| 一区二区不卡在线视频 午夜欧美不卡在| 日本福利视频导航| 欧美伦理免费在线| 欧美性xxxx在线播放| 国产又猛又黄的视频| 伊人久久一区| 亚洲福利在线看| 天天舔天天操天天干| 亚洲一区 二区 三区| 97在线视频精品| 波多野结衣一区二区三区在线| 麻豆一区二区三| 国产精品免费一区二区| 国产视频三级在线观看播放| 亚洲欧美偷拍卡通变态| 久草热视频在线观看| 天堂久久午夜av| 精品三级在线看| 性高潮久久久久久久| 午夜免费一区| 69视频在线播放| 在线免费观看高清视频| 成人在线综合网| 日韩免费一区二区三区| 好久没做在线观看| 欧美日韩综合在线免费观看| fc2成人免费视频| 日韩www.| 91sa在线看| www.黄色片| 国产精品视频yy9299一区| 97超碰国产精品| 亚洲电影二区| 亚洲美女在线看| 欧美日韩成人免费观看| 日韩高清一区二区| 国产一区二区三区四区五区在线 | 欧美在线视频a| 99久久久久久久| 久久精品一区二区三区四区| 国产精品va在线观看无码| 成人在线视频观看| 日韩精品在线观看一区| 久久久国产成人| 久久www免费人成看片高清| 久久久神马电影| 久草在线视频网站| 欧美一区二区日韩| 中文字幕在线观看二区| 久久激情一区| 国产日韩一区欧美| 欧美一卡二卡| 91精品国产一区二区| 国产美女永久免费无遮挡| 国产欧美午夜| 国产日韩欧美综合精品| 呦呦在线视频| 欧美一区中文字幕| 337人体粉嫩噜噜噜| 水野朝阳av一区二区三区| 九九九九精品九九九九| 97超碰免费在线| 亚洲国产成人精品一区二区| 午夜69成人做爰视频| 国产在线精品免费| 在线看无码的免费网站| 亚洲精品777| www.色综合| 国产精品无码久久av| 国产精品女主播av| 一区二区三区视频网| 精品无人区麻豆乱码久久久| 日韩美女在线播放| 国产女人在线视频| 在线看日本不卡| 精品无码国产污污污免费网站| 亚洲尤物影院| 欧美激情第六页| 日韩大片欧美大片| 中文字幕亚洲情99在线| 伊人久久亚洲综合| 中文字幕永久在线不卡| 亚洲va综合va国产va中文| 久久精品国内一区二区三区水蜜桃| 国产女人精品视频| 含羞草www国产在线视频| 欧美久久久久久久久| 日本精品人妻无码77777| 国产精品一区二区男女羞羞无遮挡| 99热都是精品| 成人精品动漫一区二区三区| 97在线视频免费观看| 日韩私人影院| 欧美日韩在线不卡| 特级片在线观看| 91香蕉视频黄| 亚洲黄色小视频在线观看| 99久久精品网| 粉嫩精品一区二区三区在线观看| а√天堂8资源在线| 亚洲欧美另类人妖| 国产农村妇女毛片精品| 亚洲高清中文字幕| av电影在线不卡| 国产综合色产在线精品| 国产精品入口芒果| 精品国产精品| www.成人av| 肉色欧美久久久久久久免费看| 中文字幕在线国产精品| 午夜精品久久久久久久91蜜桃| 天天做天天摸天天爽国产一区| 人与嘼交av免费| 成人午夜私人影院| 亚洲视频在线观看一区二区三区| 68国产成人综合久久精品| 精品欧美一区二区精品久久| 日韩制服一区| 欧美精品久久一区二区| 国产中文在线观看| 精品少妇一区二区三区视频免付费 | 超碰免费在线| 欧美成人精精品一区二区频| 国产第一页在线观看| 亚洲精品国产一区二区精华液 | 99久久婷婷| 精品国产综合区久久久久久| 四虎精品在线观看| 97国产精品视频人人做人人爱| 自拍视频在线| 亚洲精品午夜精品| www.爱爱.com| 欧美伦理视频网站| 精品国产乱子伦| 亚洲大片在线观看| 麻豆天美蜜桃91| 国产欧美精品一区二区色综合朱莉| 中文字幕一区二区三区人妻在线视频 | 亚洲女同志亚洲女同女播放| 欧美亚洲动漫制服丝袜| 亚洲 欧美 视频| 艳妇臀荡乳欲伦亚洲一区| 国产精品理论在线| 久久综合网色—综合色88| 男人操女人下面视频| 日本亚洲免费观看| 国产xxxxx在线观看| 在线日韩电影| www.99riav| 午夜激情久久| 亚洲国产精品www| 亚洲精品进入| 蜜桃视频日韩| 日韩成人一级| 国产在线精品一区二区三区》| 久久国产精品美女| 成人激情免费在线| 欧美成人高清视频在线观看| 国产成人97精品免费看片| 中文字幕这里只有精品| 高清欧美性猛交| 激情av在线| 欧美精品激情blacked18| 久草在线新免费首页资源站| 欧美另类xxx| 欧美寡妇性猛交xxx免费| 久久九九免费视频| 成人在线播放免费观看| 久久久av电影| caopeng在线| 欧美日韩国产二区| 手机电影在线观看| 欧美黑人巨大xxx极品| 直接在线观看的三级网址| 久久人体大胆视频| 亚洲区欧洲区| 欧美极度另类性三渗透| 国产精品一二三产区| 欧美主播福利视频| 三上悠亚亚洲一区| 国产精品久久久久久久久久三级| 五月激情久久| 国产日韩专区在线| 二区三区精品| 国产精品久久九九| 亚洲欧美校园春色| 先锋影音亚洲资源| 中文字幕一区二区三区久久网站| 日本a级片在线观看| 亚洲特级毛片| 国产资源在线视频| 日韩激情视频在线观看| www亚洲成人| 国产高清成人在线| 久久久久久久无码| 欧美国产一区在线| 极品盗摄国产盗摄合集| 黄色一区二区在线| 正在播放亚洲精品| 精品免费国产二区三区| 视频一区二区三区在线看免费看 | 欧美久久在线| 91精品国产91久久综合| r级无码视频在线观看| 久久青草久久| 中文字幕乱码在线人视频| av网站免费线看精品| 少妇视频在线播放| 一区二区三区毛片| 天天操夜夜操视频| 7777精品久久久大香线蕉| 三级网站在线看| 中文字幕久热精品在线视频| 色呦呦视频在线观看| 欧美在线xxx| 久久久久毛片免费观看| 久久久久久久久一区| 一区二区影院| 少妇高清精品毛片在线视频| 国内成人自拍视频| 91精品国产自产| 亚洲美女视频在线| 69亚洲精品久久久蜜桃小说| 欧美一区二区观看视频| 国产日本在线观看| 亚洲91精品在线观看| 久久天堂影院| 欧美久久综合性欧美| 欧美日韩午夜| 奇米视频888| 久久精品人人做人人综合 | 色黄视频在线观看| 亚洲一区亚洲二区亚洲三区| 久久不见久久见国语| 亚洲色欲久久久综合网东京热| 榴莲视频成人app| 色呦呦一区二区三区| 天天做天天爱夜夜爽| 日韩女优电影在线观看| 成年人在线视频免费观看| 91精品国产高清自在线| 日韩欧美中文字幕一区二区三区| 日韩国产在线一区| 久久99精品久久久久久野外| 99精品视频在线观看免费| 日日干夜夜操s8| 99精品国产视频| 九九视频免费观看| 在线成人免费视频| www.中文字幕久久久| 欧洲精品久久久| 欧美成人一区在线观看| www.日本少妇| 国产99久久久久久免费看农村| 日韩福利小视频| 欧美日韩亚洲综合| 在线播放麻豆| 国产精品狠色婷| 国产精品一区二区av交换| 黄色av网址在线播放| 成人av动漫在线| 日本网站免费观看| 精品国产免费人成电影在线观看四季| 在线中文字幕视频观看| 亚洲精品日产aⅴ| 综合久久精品| 免费欧美一级片| 一区二区三区高清| 午夜免费福利视频| 欧美丰满少妇xxxxx做受| 欧美日韩黄色| 成人网站免费观看入口| 99在线精品视频| 一级片视频在线观看| 亚洲乱码国产乱码精品精天堂| 欧美91看片特黄aaaa| 日韩伦理一区二区三区av在线| 日韩电影免费在线看| 亚洲精品天堂网| 4438x成人网最大色成网站| 成人a在线视频免费观看| av噜噜色噜噜久久| 在线看片欧美| 人人妻人人藻人人爽欧美一区| 欧洲人成人精品| 日日夜夜精品一区| 91久久精品www人人做人人爽| 国自产拍偷拍福利精品免费一| 亚洲无人区码一码二码三码| 天天综合天天做天天综合| 黄色软件在线| 国产日韩欧美黄色| 欧美fxxxxxx另类| av无码一区二区三区| 在线免费观看视频一区| 男人影院在线观看| 成人av资源网| 久久婷婷丁香| 人人艹在线视频| 日韩免费高清视频| 日韩欧美精品一区二区三区| 亚洲高清资源综合久久精品| 国产精品一区二区不卡| 午夜影院免费在线观看 | 91最新在线| 7777精品伊久久久大香线蕉语言| 亚洲国产欧美国产综合一区| 中文字幕人妻一区二区| 欧美精品欧美精品系列| av成人福利| 亚洲国产欧美日韩| 国产福利一区在线| 免费观看日批视频| 另类少妇人与禽zozz0性伦| 精品视频在线你懂得| 五月婷婷丁香综合网| 亚洲一区二区欧美| 在线视频1区2区| 国产区一区二区三区| 美女www一区二区| 日韩免费av片| 久久久国产成人精品| 牲欧美videos精品| 一级片免费在线观看视频| 色哟哟欧美精品| 黄色大片在线|