国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Redis 主從數(shù)據(jù)同步

這篇具有很好參考價值的文章主要介紹了Redis 主從數(shù)據(jù)同步。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Redis 的高可靠性 :

  • 數(shù)據(jù)盡量少丟失 : AOF/RDB 保證
  • 服務(wù)盡量少中斷 : 增加副本冗余量,同數(shù)據(jù)保存多個實例

Redis 提供主從庫模式,保證數(shù)據(jù)副本的一致

主從庫間采用 : 讀寫分離的方式

  • 讀操作:主庫、從庫都接收
  • 寫操作:先到主庫執(zhí)行,再把主庫的寫操作同步給從庫

image.png

主從庫同步的模式:全量復(fù)制、基于長連接的命令傳播,增量復(fù)制

主從庫第一次同步

設(shè)置實例 2 (172.16.19.5) 為實例 1 (172.16.19.3) 的從庫 :

replicaof  172.16.19.3  6379

主從庫第一次同步流程 :

  1. 主從庫間建立連接,并告知主庫同步,為全量復(fù)制做準(zhǔn)備
    1. 從庫給主庫發(fā) psync (參數(shù) : runID : 隨機(jī) ID ; offset=-1 : 第一次復(fù)制) ,表示要數(shù)據(jù)同步
    2. 主庫發(fā) FULLRESYNC (第一次復(fù)制用 : 全量復(fù)制) 給從庫
  2. 主庫將所有數(shù)據(jù)同步給從庫。從庫收到數(shù)據(jù)后,在本地完成數(shù)據(jù)加載
    1. 主庫執(zhí)行 bgsave ,生成 RDB ,并把文件發(fā)給從庫
    2. 從庫收到 RDB 后,先清空當(dāng)前數(shù)據(jù)庫,再加載 RDB
    3. 為了主從庫的數(shù)據(jù)一致性,主庫會用 replication buffer,記錄 RDB 生成后的所有寫操作
  3. 主庫會把 2 階段中 , 新收到的寫命令 , 發(fā)給從庫
    1. 主庫完成 RDB 發(fā)送后,把 replication buffer 的新修改操作 ,發(fā)給從庫,從庫再執(zhí)行這些操作

image.png

主從級聯(lián)模式

主從庫間第一次的全量復(fù)制同步 :

  • 對主庫,要完成兩個耗時操作:生成 RDB 文件 , 傳輸 RDB 文件

當(dāng)從庫數(shù)量很多,并都和主庫進(jìn)行全量復(fù)制的問題 :

  • 主庫忙于 fork 子進(jìn)程生成 RDB 文件
  • fork 會阻塞主線程處理正常請求,并導(dǎo)致主庫響應(yīng)請求速度變慢
  • 傳輸 RDB 會占用主庫的網(wǎng)絡(luò)帶寬,導(dǎo)致主庫的資源使用壓力

分擔(dān)主庫壓力的解決方案 :

  • 主-從-從 模式 : 將主庫生成 RDB/傳輸 RDB 壓力,以級聯(lián)方式分散到從庫

級聯(lián)的 主-從-從 模式 :

image.png

主從庫間網(wǎng)絡(luò)斷

當(dāng)主從庫斷后,主庫會把寫操作寫入 replication buffer,并也寫入 repl_backlog_buffer 環(huán)形緩沖區(qū)

  • 主庫會記錄自己寫的位置,從庫會記錄自己已讀的位置
  • 主從同步偏移量 master_repl_offset : 當(dāng)主庫的寫操作越多,該值會越大
  • 當(dāng)從庫的讀取速度較慢,環(huán)形緩沖區(qū)寫滿后,主庫會覆蓋之前寫操作 , 可能會導(dǎo)致主從庫間的數(shù)據(jù)不一致

repl_backlog_buffer :

image.png

Redis 增量復(fù)制流程 :

  • 主從庫的連接恢復(fù)后,從庫先給主庫發(fā) psync ,并把自己當(dāng)前 slave_repl_offset 發(fā)給主庫
  • 主庫會判斷自己的 master_repl_offset 和 slave_repl_offset 之間的差距
  • 主庫把 master_repl_offset ~ slave_repl_offset間的寫操作,同步給從庫就行

image.png

避免主從庫間的數(shù)據(jù)不一致 :

  • 方案 : 調(diào)整 repl_backlog_size
  • 計算公式 : 緩沖空間大小 = 主庫寫入命令速度 * 操作大小 - 主從庫間網(wǎng)絡(luò)傳輸命令速度 * 操作大小
  • repl_backlog_size = 緩沖空間大小 * 2

例子 : 主庫每秒寫入 2000 個操作,每個操作的大小 : 2KB,網(wǎng)絡(luò)每秒能傳輸 1000 個操作

  • 緩沖空間大小 = 2000*2 - 1000 *2 = 2MB
  • 為了應(yīng)對突發(fā)壓力,repl_backlog_size = 2MB * 2 = 4MB

當(dāng)并發(fā)請求量非常大 :文章來源地址http://www.zghlxwxcb.cn/news/detail-430412.html

  • 調(diào)大 repl_backlog_size ,如 : 緩沖空間大小 * 4
  • 切片集群 : 分擔(dān)單個主庫的請求壓力

到了這里,關(guān)于Redis 主從數(shù)據(jù)同步的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【數(shù)據(jù)可靠性】Flink和Kafka連接時的精確一次保證

    端到端的 exactly-once(精準(zhǔn)一次) kafka - Flink - kafka 輸入數(shù)據(jù)源端的 Kafka 可以對數(shù)據(jù)進(jìn)行持久化保存,并可以重置偏移量(offset) Flink 內(nèi)部可以通過檢查點機(jī)制保證狀態(tài)和處理結(jié)果的 exactly-once 語義 兩階段提交(2PC) 。 寫入 Kafka 的過程實際上是一個兩段式的提交:處理完畢

    2024年02月02日
    瀏覽(24)
  • 【可靠性測試】什么是可靠性測試:定義、方法和工具

    【可靠性測試】什么是可靠性測試:定義、方法和工具

    可靠性定義為在特定環(huán)境中指定時間段內(nèi)無故障軟件運行的概率。 執(zhí)行可靠性測試是為了確保軟件是可靠的,它滿足其目的,在給定的環(huán)境中指定的時間量,并能夠呈現(xiàn)無故障運行。 在這個機(jī)械化的世界里,現(xiàn)在人們盲目地相信任何軟件。無論軟件系統(tǒng)顯示出什么結(jié)果,人

    2024年02月05日
    瀏覽(24)
  • TCP如何保證可靠性,TCP如何實現(xiàn)可靠性傳輸?shù)? decoding=
  • 嵌入式硬件電路可靠性的關(guān)鍵問題的分析(可靠性介紹)

    嵌入式硬件電路可靠性的關(guān)鍵問題的分析(可靠性介紹)

    :失效率 溫度 可靠性 降額 器件工藝 質(zhì)量與可靠性的區(qū)別 質(zhì)量:時間點上去衡量????????????????????????????????????????????? 可靠性:一段時間上才能衡量,需要有量才能去衡量(大部分是產(chǎn)品量產(chǎn)之后才會出現(xiàn)問題) 質(zhì)量:在時間點上衡量

    2024年03月24日
    瀏覽(21)
  • 配電網(wǎng)可靠性評估(4)—(頂刊復(fù)現(xiàn))基于線性規(guī)劃的配電網(wǎng)可靠性評估

    配電網(wǎng)可靠性評估(4)—(頂刊復(fù)現(xiàn))基于線性規(guī)劃的配電網(wǎng)可靠性評估

    ? ? ? ? 之前的博客中介紹了配電網(wǎng)可靠性評估的三種方法、分別是解析法中的最小路法,以及序貫蒙特卡羅模擬法及非序貫蒙特卡洛模擬法,順帶提到了含有分布式電源的配電網(wǎng)可靠性評估方法。 配電網(wǎng)可靠性評估(一)最小路法和非序貫蒙特卡洛模擬法 配電網(wǎng)可靠性評

    2024年02月08日
    瀏覽(26)
  • RabbitMQ --- 消息可靠性

    RabbitMQ --- 消息可靠性

    消息隊列在使用過程中,面臨著很多實際問題需要思考: ?? ? 消息從發(fā)送,到消費者接收,會經(jīng)理多個過程: 其中的每一步都可能導(dǎo)致消息丟失,常見的丟失原因包括: 發(fā)送時丟失: 生產(chǎn)者發(fā)送的消息未送達(dá)exchange 消息到達(dá)exchange后未到達(dá)queue MQ宕機(jī),queue將消息丟失 co

    2024年02月14日
    瀏覽(29)
  • 可靠性測試

    可靠性測試

    我們認(rèn)為軟件可靠性始終是重要的,但它對于任務(wù)關(guān)鍵型、安全關(guān)鍵型和高使用率系統(tǒng)是必不可少的。如您所料,可靠性測試可用于降低可靠性問題的風(fēng)險??煽啃怨收媳澈蟮某R妴栴}包括內(nèi)存泄漏、磁盤碎片和耗盡、間歇性基礎(chǔ)設(shè)施問題以及超時值低于可行值。 可靠性定義

    2024年02月16日
    瀏覽(27)
  • RabbitMQ消息的可靠性

    面試題: Rabbitmq怎么保證消息的可靠性? 1.消費端消息可靠性保證: 消息確認(rèn)(Acknowledgements) : 消費者在接收到消息后,默認(rèn)情況下RabbitMQ會自動確認(rèn)消息(autoAck=true)。為保證消息可靠性,可以設(shè)置autoAck=false,使得消費者在處理完消息后手動發(fā)送確認(rèn)(basicAck)。如果消費

    2024年04月14日
    瀏覽(25)
  • RabbitMQ-保證消息可靠性

    RabbitMQ-保證消息可靠性

    消息從發(fā)送,到消費者接收,會經(jīng)理多個過程: 其中的每一步都可能導(dǎo)致消息丟失,常見的丟失原因包括: 發(fā)送時丟失: 生產(chǎn)者發(fā)送的消息未送達(dá)exchange 消息到達(dá)exchange后未到達(dá)queue MQ宕機(jī),queue將消息丟失 consumer接收到消息后未消費就宕機(jī) 針對這些問題,RabbitMQ分別給出了

    2024年02月07日
    瀏覽(31)
  • 什么是軟件可靠性測試?

    什么是軟件可靠性測試?

    最近整理總結(jié)筆記,筆者發(fā)現(xiàn)可靠性測試記得含糊籠統(tǒng),于是花了一些時間,通過查閱資料,引入自己的理解,整理出了什么是可靠性測試,如何做可靠性測試。 什么是軟件可靠性測試? “可靠”一詞意味著某種事物是可靠的,并且每次都會給出相同的結(jié)果??煽啃詼y試也

    2024年02月05日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包