日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳解Redis主從復(fù)制和哨兵機(jī)制

汽車玩家 ? 來源:簡(jiǎn)書 ? 作者:GGarrett ? 2020-05-03 18:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. Redis主從復(fù)制

1.1 Redis主從復(fù)制

詳解Redis主從復(fù)制和哨兵機(jī)制

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

Redis主機(jī)數(shù)據(jù)同步到從機(jī)上有兩種方式,一種是全量同步,另一種是增量同步。

主從復(fù)制不會(huì)阻塞master,在數(shù)據(jù)同步時(shí),master還可以繼續(xù)處理客戶端請(qǐng)求,因?yàn)閞edis會(huì)產(chǎn)生一個(gè)新的進(jìn)程來解決同步問題。

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

1.2 Redis主從配置

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

# slaveof 《masterip》 《masterport》

# 表示當(dāng)前【從服務(wù)器】對(duì)應(yīng)的【主服務(wù)器】的IP是192.168.10.135,端口是6379。

slaveof 192.168.10.135 6379

啟動(dòng)主服務(wù)器 redis-server redis.conf

進(jìn)入從服務(wù)器文件夾,啟動(dòng)從服務(wù)器

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

1.3 實(shí)現(xiàn)原理

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

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

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

runid

每個(gè)redis服務(wù)器,不論主服務(wù)器還是從服務(wù),都會(huì)有自己的運(yùn)行id。PSYNC runid 這個(gè)命令,runid是指上一次復(fù)制主服務(wù)器的運(yùn)行id,如果沒有保存這個(gè)id,PSYNC的命令會(huì)使用”PSYNC ? -1” 這種形式發(fā)送給Master,請(qǐng)求主服務(wù)器進(jìn)行全量復(fù)制。

offset(復(fù)制偏移量)

主服務(wù)器和從服務(wù)器會(huì)分別維護(hù)一個(gè)復(fù)制偏移量,主服務(wù)器每次向從服務(wù)器傳播N個(gè)字節(jié)的數(shù)據(jù)時(shí),就將自己的復(fù)制偏移量的值加上N,從服務(wù)器每次收到主服務(wù)器傳播來的N個(gè)字節(jié)的數(shù)據(jù)時(shí),就將自己的復(fù)制偏移量值加上N。

詳解Redis主從復(fù)制和哨兵機(jī)制

復(fù)制積壓緩沖區(qū)

復(fù)制積壓緩沖區(qū)是由主服務(wù)器維護(hù)一個(gè)固定長(zhǎng)度(fixed-size)先進(jìn)先出(FIFO)隊(duì)列,默認(rèn)大小是1MB。它主要的作用就是當(dāng)主服務(wù)器進(jìn)行命令傳播時(shí),不僅將命令發(fā)送給所有從服務(wù)器,還會(huì)將命令入隊(duì)到復(fù)制積壓緩沖區(qū)。如果主服務(wù)器向從服務(wù)器傳播數(shù)據(jù)時(shí)發(fā)生斷線,主服務(wù)器會(huì)將復(fù)制積壓緩沖區(qū)偏移量的所有數(shù)據(jù)都發(fā)送給從服務(wù)器(發(fā)送的是斷線之后的的數(shù)據(jù))。

詳解Redis主從復(fù)制和哨兵機(jī)制

PSYNC執(zhí)行過程

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

當(dāng)前服務(wù)器判斷自己是否保存Master runid是否是第一次復(fù)制。

如果是第一次復(fù)制那么當(dāng)前服務(wù)器向Master發(fā)送PSYNC ? -1命令,主動(dòng)請(qǐng)求Master進(jìn)行全量同步。

如果已經(jīng)父之過Master,那么當(dāng)前從服務(wù)器向Master發(fā)送PSYNC runid offset命令。

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

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

全量同步

Redis的全量同步主要分為三個(gè)階段:

同步快照階段:Master創(chuàng)建并發(fā)送快照給Slave,Slave再入快照并解析。Master同時(shí)將此階段產(chǎn)生的新的命令寫入到積壓緩沖區(qū)中。

同步寫緩沖階段:Master向Slave同步存儲(chǔ)在緩沖區(qū)的寫操作命令。

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

增量同步

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

通常情況下,Master沒執(zhí)行一個(gè)寫命令就會(huì)想Slave發(fā)送相同的寫命令,然后Slave接受并執(zhí)行。

2. 哨兵(sentinel)機(jī)制

2.1 哨兵機(jī)制介紹

sentinel進(jìn)程是用于監(jiān)控Redis集群中Master主服務(wù)器工作的狀態(tài)。

在Master主服務(wù)器發(fā)生故障的時(shí)候,可以實(shí)現(xiàn)Master和Slave服務(wù)器的切換,保證系統(tǒng)的高可用。

2.2 為什么要有哨兵機(jī)制?

Redis主從復(fù)制的缺點(diǎn):沒有辦法對(duì)master進(jìn)行動(dòng)態(tài)選舉,需要使用Sentinel機(jī)制完成動(dòng)態(tài)選舉。

2.3 哨兵的作用

監(jiān)控(Monitoring):sentinel會(huì)不斷檢查Master和Slave是否運(yùn)行正常。

提醒(Notification):當(dāng)被監(jiān)控的某個(gè)Redis節(jié)點(diǎn)出現(xiàn)問題時(shí), sentinel 可以通過 API向管理員或者其他應(yīng)用程序發(fā)送通知。

自動(dòng)故障轉(zhuǎn)移(Automatic failover):當(dāng)Master不能正常操作時(shí)哨兵會(huì)開始一次故障轉(zhuǎn)移。 它會(huì)將失效的Master的其中一個(gè)Slave升級(jí)為新的Master,并讓其他Slave改為復(fù)制新的Master。 當(dāng)客戶端試圖連接失效的Master時(shí),集群會(huì)向客戶端顯示新的Master的地址。 Master和Slave切換后,Master的redis.conf、Slave的reids.conf和senisentinel的sentinel.conf配置文件的內(nèi)容都會(huì)相應(yīng)的改變,即,Master主服務(wù)器的redis.conf配置文件中會(huì)多一行slaveof的配置,sentinel.conf的監(jiān)控目標(biāo)會(huì)隨之調(diào)換。

2.4 故障判斷原理分析

每個(gè)sentinel進(jìn)程每秒鐘一次的頻率向整個(gè)集群中Master、Slave以及其它Sentinel進(jìn)程發(fā)送一個(gè)PING命令。

如果一個(gè)實(shí)例(instance)距離最后一次有效回復(fù)PING命令超過down-after-milliseconds選項(xiàng)所指定的值,這個(gè)實(shí)例會(huì)被sentinel進(jìn)程標(biāo)記為主觀下線(SDOWN)。

如果一個(gè)Master主服務(wù)器被標(biāo)記為主觀下線(SDOWN),則正在監(jiān)視這個(gè)Master主服務(wù)器的所有 Sentinel進(jìn)程要以每秒一次的頻率確認(rèn)Master主服務(wù)器的確進(jìn)入了主觀下線狀態(tài)。

當(dāng)有足夠數(shù)量的 Sentinel進(jìn)程(大于等于配置文件指定的值)在指定的時(shí)間范圍內(nèi)確認(rèn)Master主服務(wù)器進(jìn)入了主觀下線狀態(tài)(SDOWN), 則Master主服務(wù)器會(huì)被標(biāo)記為客觀下線(ODOWN)。

在一般情況下, 每個(gè) Sentinel進(jìn)程會(huì)以每 10 秒一次的頻率向集群中的所有Master主服務(wù)器、Slave從服務(wù)器發(fā)送 INFO 命令。

當(dāng)Master主服務(wù)器被 Sentinel進(jìn)程標(biāo)記為客觀下線(ODOWN)時(shí),Sentinel進(jìn)程向下線的 Master主服務(wù)器的所有 Slave從服務(wù)器發(fā)送 INFO 命令的頻率會(huì)從 10 秒一次改為每秒一次。

若沒有足夠數(shù)量的 Sentinel進(jìn)程同意 Master主服務(wù)器下線, Master主服務(wù)器的客觀下線狀態(tài)就會(huì)被移除。若 Master主服務(wù)器重新向 Sentinel進(jìn)程發(fā)送 PING 命令返回有效回復(fù),Master主服務(wù)器的主觀下線狀態(tài)就會(huì)被移除。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    14

    文章

    10371

    瀏覽量

    91774
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    394

    瀏覽量

    12258
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    微電網(wǎng)混合控制架構(gòu):主從與對(duì)等控制的優(yōu)勢(shì)融合

    長(zhǎng)期以來,主從控制與對(duì)等控制作為微電網(wǎng)兩大核心控制模式,各有優(yōu)劣、相互補(bǔ)充——主從控制憑借集中調(diào)度優(yōu)勢(shì)實(shí)現(xiàn)全局優(yōu)化,對(duì)等控制依托去中心化特性保障系統(tǒng)韌性,單一控制模式已難以適配高比例新能源接入、多
    的頭像 發(fā)表于 04-29 11:00 ?320次閱讀
    微電網(wǎng)混合控制架構(gòu):<b class='flag-5'>主從</b>與對(duì)等控制的優(yōu)勢(shì)融合

    微電網(wǎng)主從控制架構(gòu):集中式調(diào)度與分布式執(zhí)行的協(xié)同機(jī)制

    電網(wǎng)安全穩(wěn)定、高效經(jīng)濟(jì)的運(yùn)行目標(biāo)?!段㈦娋W(wǎng)主從控制架構(gòu):集中式調(diào)度與分布式執(zhí)行的協(xié)同機(jī)制》重點(diǎn)聚焦主從架構(gòu)的核心構(gòu)成、集中式調(diào)度與分布式執(zhí)行的功能定位,深入解析二者協(xié)同運(yùn)行的內(nèi)在邏輯與實(shí)現(xiàn)路徑,為微電網(wǎng)控制架構(gòu)的設(shè)計(jì)與落地提供理
    的頭像 發(fā)表于 04-11 09:55 ?1416次閱讀
    微電網(wǎng)<b class='flag-5'>主從</b>控制架構(gòu):集中式調(diào)度與分布式執(zhí)行的協(xié)同<b class='flag-5'>機(jī)制</b>

    Redis應(yīng)用監(jiān)控指標(biāo)大盤點(diǎn)

    Redis作為高性能內(nèi)存數(shù)據(jù)庫,廣泛應(yīng)用于緩存、會(huì)話存儲(chǔ)、消息隊(duì)列等場(chǎng)景。對(duì)Redis運(yùn)行狀況的有效監(jiān)控,是保障業(yè)務(wù)穩(wěn)定性的關(guān)鍵。本文的目的是幫助運(yùn)維工程師建立完整的Redis監(jiān)控知識(shí)體系,講解需要監(jiān)控哪些指標(biāo)、如何采集這些指標(biāo)
    的頭像 發(fā)表于 04-09 10:07 ?187次閱讀

    全方位對(duì)比:Redis能取代MySQL嗎?看完這篇你就懂了

    Redis能不能取代MySQL?答案很明確:不能取代,但可以互補(bǔ)。
    的頭像 發(fā)表于 04-07 10:50 ?213次閱讀
    全方位對(duì)比:<b class='flag-5'>Redis</b>能取代MySQL嗎?看完這篇你就懂了

    Redis哨兵模式的自動(dòng)故障檢測(cè)與主從切換實(shí)戰(zhàn)

    Redis 主從復(fù)制解決了讀擴(kuò)展和數(shù)據(jù)冗余問題,但主節(jié)點(diǎn)故障時(shí)需要人工介入切換,這在生產(chǎn)環(huán)境中是不可接受的。Sentinel(哨兵)模式在主從架構(gòu)之上增加了自動(dòng)故障檢測(cè)和故障轉(zhuǎn)移能力,
    的頭像 發(fā)表于 02-27 11:05 ?323次閱讀

    Redis內(nèi)存管理、持久化策略與慢查詢排查分析

    Redis 在生產(chǎn)環(huán)境中承擔(dān)著緩存、會(huì)話存儲(chǔ)、消息隊(duì)列、分布式鎖等多種角色。隨著數(shù)據(jù)量增長(zhǎng)和并發(fā)壓力上升,內(nèi)存碎片、持久化 I/O 抖動(dòng)、慢查詢堆積這三類問題會(huì)逐漸顯現(xiàn),直接影響服務(wù)延遲和穩(wěn)定性。Redis 8.x 在內(nèi)存管理和持久化機(jī)
    的頭像 發(fā)表于 02-27 11:00 ?323次閱讀

    燒錄芯片與IC復(fù)制是一回事嗎?深度解析芯片燒錄原理

    本文明確區(qū)分了“芯片燒錄”與“IC復(fù)制”的本質(zhì)差異。燒錄是為芯片寫入程序的合法生產(chǎn)步驟,核心是通過物理高壓將數(shù)據(jù)寫入芯片存儲(chǔ)單元。而IC復(fù)制則是未經(jīng)授權(quán)的逆向破解與克隆行為。文章著重解釋了現(xiàn)代芯片
    的頭像 發(fā)表于 01-06 13:12 ?611次閱讀

    教程來啦!LuatOS中的消息通信機(jī)制詳解及其應(yīng)用場(chǎng)景

    在資源受限的嵌入式環(huán)境中,LuatOS采用消息機(jī)制實(shí)現(xiàn)模塊間解耦與高效通信。通過預(yù)定義消息名稱(如“new_msg”),開發(fā)者可輕松構(gòu)建響應(yīng)式程序結(jié)構(gòu)。接下來我們將深入剖析其實(shí)現(xiàn)原理與典型使用方法
    的頭像 發(fā)表于 09-26 18:59 ?570次閱讀
    教程來啦!LuatOS中的消息通信<b class='flag-5'>機(jī)制</b><b class='flag-5'>詳解</b>及其應(yīng)用場(chǎng)景

    深度剖析Redis的兩大持久化機(jī)制

    凌晨3點(diǎn),我被一通緊急電話驚醒。線上Redis集群崩潰,6GB的緩存數(shù)據(jù)全部丟失,導(dǎo)致MySQL瞬間承壓暴增,整個(gè)交易系統(tǒng)陷入癱瘓。事后復(fù)盤發(fā)現(xiàn),問題的根源竟是一個(gè)被忽視的持久化配置細(xì)節(jié)。
    的頭像 發(fā)表于 09-17 16:22 ?727次閱讀

    Redis集群部署配置詳解

    Redis集群是一種分布式Redis解決方案,通過數(shù)據(jù)分片和主從復(fù)制實(shí)現(xiàn)高可用性和橫向擴(kuò)展。集群將整個(gè)數(shù)據(jù)集分割成16384個(gè)哈希槽(hash slots),每個(gè)節(jié)點(diǎn)負(fù)責(zé)一部分槽位。
    的頭像 發(fā)表于 07-17 11:04 ?1206次閱讀

    Redis集群部署與性能優(yōu)化實(shí)戰(zhàn)

    Redis作為高性能的內(nèi)存數(shù)據(jù)庫,在現(xiàn)代互聯(lián)網(wǎng)架構(gòu)中扮演著關(guān)鍵角色。作為運(yùn)維工程師,掌握Redis的部署、配置和優(yōu)化技能至關(guān)重要。本文將從實(shí)戰(zhàn)角度出發(fā),詳細(xì)介紹Redis集群的搭建、性能優(yōu)化以及監(jiān)控運(yùn)維的核心技術(shù)。
    的頭像 發(fā)表于 07-08 17:56 ?1048次閱讀

    【經(jīng)驗(yàn)分享】在Omni3576上編譯Redis-8.0.2源碼,并安裝及性能測(cè)試

    本文首先介紹Redis是什么,然后介紹如何在Omni3576上編譯Redis-8.0.2源碼,以及從源碼編譯、安裝Redis,最后介紹如何在Omni3576上運(yùn)行Redis性能測(cè)試,并
    的頭像 發(fā)表于 06-05 08:05 ?1115次閱讀
    【經(jīng)驗(yàn)分享】在Omni3576上編譯<b class='flag-5'>Redis</b>-8.0.2源碼,并安裝及性能測(cè)試

    【幸狐Omni3576邊緣計(jì)算套件試用體驗(yàn)】Redis最新8.0.2版本源碼安裝及性能測(cè)試

    本文首先介紹Redis是什么,然后介紹如何在Omni3576上編譯Redis-8.0.2源碼,以及從源碼編譯、安裝Redis,最后介紹如何在Omni3576上運(yùn)行Redis性能測(cè)試,并
    發(fā)表于 06-03 01:28

    利用dockerfile搭建mysql主從集群和redis集群

    ==MySQL主從同步(Replication)是一種實(shí)現(xiàn)數(shù)據(jù)冗余和高可用性的技術(shù),通過將主數(shù)據(jù)庫(Master)的變更操作同步到一個(gè)或多個(gè)從數(shù)據(jù)庫(Slave),實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)或準(zhǔn)實(shí)時(shí)復(fù)制==。
    的頭像 發(fā)表于 05-14 11:38 ?3714次閱讀
    利用dockerfile搭建mysql<b class='flag-5'>主從</b>集群和<b class='flag-5'>redis</b>集群

    Redis 再次開源!

    “ ?Redis 現(xiàn)已采用 AGPLv3 開源許可證。? ” Redis CEO 的 Blog 以下是 Redis CEO Rowan Trollope 的 Blog: 像 AWS 和 GCP 這樣
    的頭像 發(fā)表于 05-06 18:26 ?1076次閱讀
    会泽县| 永安市| 柘城县| 成武县| 和龙市| 治多县| 德江县| 恭城| 墨江| 东乌| 稻城县| 贞丰县| 濮阳市| 南充市| 三明市| 吉安市| 德江县| 哈尔滨市| 两当县| 萍乡市| 中西区| 秦安县| 德兴市| 祁门县| 鹰潭市| 南部县| 托克托县| 碌曲县| 杭锦后旗| 弥渡县| 铜陵市| 营口市| 盘山县| 思茅市| 当阳市| 绥中县| 加查县| 玉溪市| 恩施市| 石阡县| 陆丰市|