精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

色婷婷国产精品综合在线观看| 激情久久久久久久| 欧美精品亚洲二区| 黄色一级片黄色| 欧美日本网站| 久久国产精品一区二区| 欧美疯狂xxxx大交乱88av| 亚洲av成人片色在线观看高潮| 日本欧美不卡| 一区二区三区免费看视频| 国产一区在线免费观看| 国产裸体美女永久免费无遮挡| 自拍视频亚洲| 亚洲一区av在线播放| 毛毛毛毛毛毛毛片123| av免费不卡国产观看| 日本中文字幕在线看| 日本美女视频一区二区| 九九热在线精品视频| 久久精品国产亚洲av久| 日本少妇精品亚洲第一区| 欧美日韩免费网站| 麻豆一区二区三区在线观看| 欧美另类自拍| 国产成人综合自拍| 国产精品美女久久久免费| 免费视频网站www| 欧美三级伦理在线| 亚洲精品美女网站| 久久久久亚洲av无码麻豆| 电影亚洲一区| 丁香五六月婷婷久久激情| 996这里只有精品| 91这里只有精品| 99国产精品99久久久久久| 亚洲free性xxxx护士白浆| 无码人妻一区二区三区线| 亚洲激精日韩激精欧美精品| 久久综合九色九九| 成人18视频免费69| 欧美日韩激情| 亚洲男人第一av网站| 中国免费黄色片| 亚洲一区二区三区免费| 在线电影一区二区三区| 欧美亚州一区二区三区| 妞干网在线免费视频| 日韩影视在线| 亚洲精品久久久蜜桃| www亚洲国产| 亚乱亚乱亚洲乱妇| 国产精品电影一区二区三区| 日本黄网免费一区二区精品| 男操女在线观看| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 亚洲不卡一区二区三区| 99久久免费观看| 美女航空一级毛片在线播放| 亚洲一区影音先锋| 亚洲精品蜜桃久久久久久| 超碰中文在线| 午夜天堂影视香蕉久久| 日韩一区二区三区免费看| 久久av高潮av| 国内一区二区在线视频观看| 国产日韩欧美中文字幕| 九九**精品视频免费播放| 国产精品久久国产精品99gif| 日本中文字幕久久| 西西人体一区二区| 秋霞av国产精品一区| 国产成人精品一区二三区| 99精品国产99久久久久久福利| 国产+人+亚洲| 黄网在线观看视频| 久久久久中文| 国产精品久久久久久久久免费看| 亚洲婷婷久久综合| 久久99精品国产| 国产精品va在线播放| 最近中文字幕在线观看| 狠狠色综合播放一区二区| 999视频在线免费观看| 精品一区二区三区日本| 中文字幕777| 国精品**一区二区三区在线蜜桃| www.av一区视频| 日本福利午夜视频在线| 国产精品伦一区| 黄色特一级视频| 女生影院久久| 69av一区二区三区| 日本69式三人交| 国产一区二区欧美| 超碰精品一区二区三区乱码| 久久精品人妻一区二区三区| 日日夜夜精品视频天天综合网| 成人国产精品色哟哟| 成人高潮片免费视频| 91麻豆swag| 最新欧美日韩亚洲| 久草视频在线免费| 欧洲成人一区| 欧美精品一级二级三级| 无码国产69精品久久久久网站 | v8888av| 日韩精品久久久久久久电影99爱| 欧美乱妇高清无乱码| 超碰中文字幕在线| 激情久久五月天| 麻豆成人在线播放| 直接在线观看的三级网址| 色综合一区二区三区| 天天干天天曰天天操| 国产精品欧美三级在线观看| 欧美人成在线视频| 中文字幕第99页| av在线一区二区三区| 在线播放 亚洲| 成人免费看视频网站| 欧美成人乱码一区二区三区| 精品人妻中文无码av在线| 在线欧美不卡| 5g影院天天爽成人免费下载| 成人在线免费观看| 黑丝美女久久久| japanese在线观看| 国产一区二区三区四区三区四| 国产精品偷伦一区二区| 日本不卡视频一区二区| 亚洲国产美女搞黄色| 亚洲午夜精品一区| 成人亚洲一区| 日韩免费av在线| 神宫寺奈绪一区二区三区| 一区二区三区美女| 人妻精油按摩bd高清中文字幕| 欧美激情777| 国产精品视频永久免费播放| 精品美女视频在线观看免费软件 | 91欧美激情另类亚洲| 高清av电影在线观看| 欧美日韩一区二区免费视频| 9.1在线观看免费| 欧美日韩亚洲国产精品| 91久久嫩草影院一区二区| √新版天堂资源在线资源| 91久久精品一区二区三| 深爱五月激情网| 午夜在线播放视频欧美| 久久久久资源| 亚洲精品mv| 亚洲欧美激情视频| 天天操天天干天天摸| 久久久夜色精品亚洲| 免费日韩视频在线观看| 精品中文一区| 日韩av大片在线| h视频在线免费| 欧美日韩在线精品一区二区三区激情| 欧美性受xxxx黑人| 麻豆视频一区二区| 亚洲区成人777777精品| 精品一区91| 久久99久久99精品中文字幕| 亚洲老妇色熟女老太| 亚洲午夜精品久久久久久久久| 一二三区视频在线观看| 日韩视频中文| 奇米精品在线| 精品久久在线| 乱亲女秽乱长久久久| 午夜精品久久久久久久爽| 亚洲一区二区不卡免费| 97人妻天天摸天天爽天天| 久久一区精品| 最新中文字幕久久| 亚洲精品在线播放| 欧美又大又硬又粗bbbbb| 国产乱理伦片a级在线观看| 欧美日韩精品一区二区三区| 欧美日韩在线国产| 久久综合久久99| 欧美重口另类videos人妖| 国产精品久久无码| 中文日韩在线| 一区二区三区四区欧美| 亚洲电影一区| 国产91在线播放| 黄色成人影院| 亚洲国产一区二区三区四区| 国产精品第6页| 亚洲精品免费视频| brazzers精品成人一区| 国内精品在线播放| 自慰无码一区二区三区| 成人精品视频| 国产精品xxxx| 久久av日韩| 91精品国产色综合久久不卡98口 | 久久亚洲精品中文字幕冲田杏梨| 国产夫妻性生活视频| 日韩欧美亚洲成人| 2018天天弄| 欧美激情资源网| 国产chinesehd精品露脸| 久久久久久久高潮| 性一交一乱一伧国产女士spa| 欧美日韩水蜜桃| 激情伦成人综合小说| 免费视频观看成人| 26uuu另类亚洲欧美日本老年| 免费av在线| 亚洲欧美国产视频| 色丁香婷婷综合久久| 欧美片网站yy| 黄色片中文字幕| 亚洲成av人片一区二区| 日韩三级久久久| 久久嫩草精品久久久精品一| 色哟哟无码精品一区二区三区| 老司机免费视频一区二区| 怡红院av亚洲一区二区三区h| 香蕉视频国产精品 | 久久久久久美女精品| 欧洲亚洲一区二区| 欧美人妖在线观看| 成人三级在线| 欧美大片91| 91精品久久久久久| 成人涩涩视频| 欧美国产禁国产网站cc| 天天操天天摸天天爽| 一本色道久久综合亚洲精品不卡| www.国产二区| 亚洲精品电影| 中文字幕av日韩精品| 精品黄色一级片| 欧洲视频一区二区三区| 亚洲婷婷伊人| 久中文字幕一区| 欧美交a欧美精品喷水| 不卡视频一区二区| 亚洲精品一区二区三区在线| 亚洲最大的免费| www.久久99| 91美女福利视频高清| 99精品视频在线免费播放| 国产精品三级美女白浆呻吟| 国产一区二区精品调教| 国产精品视频免费在线| 免费在线成人激情电影| 国产精品日日摸夜夜添夜夜av| 嫩草伊人久久精品少妇av杨幂| 国产精品美女久久| 国产91欧美| 国产在线精品一区免费香蕉| 国产精品一区二区三区av| 92看片淫黄大片欧美看国产片| 白嫩亚洲一区二区三区| 3d动漫精品啪啪一区二区三区免费| 精品国产乱码久久久久久樱花| 91中文字幕在线| 91成人精品在线| 国产在线观看一区| 中文字幕精品影院| 日韩国产精品一区二区| 成人在线免费观看视频| 亚洲最新在线| 欧美va天堂在线| 国产美女主播在线播放| 亚洲每日更新| 国产精品人人妻人人爽人人牛| 免费一区二区视频| 992tv人人草| 成人激情免费网站| 国产人妻一区二区| 国产精品久久久久久久第一福利| 亚洲欧美小视频| 舔着乳尖日韩一区| 中国女人一级一次看片| 欧美老肥妇做.爰bbww| www天堂在线| 亚洲理论在线a中文字幕| 午夜一区二区视频| 不卡在线一区| 中国一级大黄大黄大色毛片| 亚洲黄色高清| 亚洲综合欧美在线| 夫妻av一区二区| 熟女少妇一区二区三区| 国产精品福利电影一区二区三区四区| 看片网站在线观看| 日本精品视频一区二区| 国产三级自拍视频| 亚洲精品自拍视频| 超鹏97在线| 日韩免费黄色av| 色妞ww精品视频7777| 欧美日韩一区二区视频在线| 欧美一区网站| 美女网站免费观看视频| 国产精品中文字幕日韩精品| 国精产品一区一区三区免费视频 | 水蜜桃一区二区| 亚洲综合色站| 丰满少妇被猛烈进入高清播放| 激情av综合网| 日韩人妻一区二区三区| 亚洲激情综合网| 中日韩在线观看视频| 亚洲第一网站男人都懂| 欧美成人hd| 国产91在线播放九色快色| 亚洲国产高清在线观看| 视频在线一区二区三区| 欧美一级网站| 超碰caoprom| 一区二区三区成人| 一区二区久久精品66国产精品| 日韩hd视频在线观看| 青青在线视频| 国产主播喷水一区二区| 欧美日韩激情在线一区二区三区| 无罩大乳的熟妇正在播放| 国产成+人+日韩+欧美+亚洲| 亚洲波多野结衣| 欧美日韩久久久| 啊v在线视频| 日韩av第一页| 久久91成人| 国产91在线视频观看| 不卡视频一二三四| 久久久一二三区| 日韩久久久精品| gogo在线观看| 亚洲xxx视频| 欧美不卡一区| 国产乱国产乱老熟300部视频| 自拍偷自拍亚洲精品播放| 中文字幕一区二区三区四区免费看 | 一区二区三区不卡视频在线观看 | 免费成人在线观看| 91精品人妻一区二区| 欧美色另类天堂2015| 在线观看xxx| 国产91|九色| 亚洲另类春色校园小说| 成人av一级片| 2023国产一二三区日本精品2022| 亚洲国产综合久久| 亚洲二区中文字幕| 欧美激情网站| 欧美高清视频一区二区三区在线观看| 亚洲一区免费| 国产交换配乱淫视频免费| 婷婷久久综合九色综合伊人色| 外国精品视频在线观看 | 国语对白做受69按摩| 亚洲一级黄色av| 精品国产黄a∨片高清在线| 亚洲天堂av免费在线观看| 国产一区二区三区精品欧美日韩一区二区三区| 国产视频精品免费| 日韩欧美一二区| а√天堂8资源在线| 欧洲亚洲一区| 激情综合色综合久久| 男的操女的网站| 亚洲国产精品久久精品怡红院| 最新欧美色图| 青青草原国产免费| 国产**成人网毛片九色| 日韩美女视频网站| 一区二区三区回区在观看免费视频| 日韩欧国产精品一区综合无码| 国产卡一卡二在线| 99视频国产精品| 18国产免费视频| 久久成人这里只有精品| 欧美日韩一区二区三区四区不卡 | 亚洲黄色在线看| 欧美日韩激情电影| 欧美另类videosbestsex日本| 97久久精品人人澡人人爽| 中文字幕在线一| 奇米亚洲午夜久久精品| 欧美激情 一区| 日韩视频一区在线观看| 小草在线视频免费播放| 亚洲精品无人区| 国产.欧美.日韩| 五月激情丁香网| 欧美极品少妇xxxxⅹ裸体艺术| 夜夜春成人影院| 最好看的中文字幕| 91国偷自产一区二区三区观看| av在线免费网站| 欧美一区二区三区四区夜夜大片 | 色婷婷激情综合|