日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis哨兵主备切换的数据丢失及Redis数据持久化

發布時間:2024/10/6 数据库 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis哨兵主备切换的数据丢失及Redis数据持久化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一 兩種數據丟失的情況

  • 異步復制導致數據丟失
    master->slave復制數據是異步的,可能有部分數據還沒復制到slave,master就宕機了,此時導致數據丟失

  • 集群腦裂導致數據丟失
    master突然脫離正常網絡,跟其他slave機器不能正常連接,但master還在運行,此時哨兵認為master宕機了開始選舉,slave切換成master。此時集群中就會出現兩個master,這就是所謂的腦裂。此時某個slave被切換成master,client還沒切換到新的master還繼續向舊的master寫數據,造成這部分數據丟失。因舊的master再次恢復時會作為一個slave掛在到新的master,自己的數據會被清空,從新的master復制一份數據

  • 解決異步復制和腦裂數據丟失情況

  • min-slaves-to-write 1
    min-slaves-max-lag 10
    至少有一個slave同步和復制數據延遲不超過10s,一旦所有的slave同步和復制數據延遲超過10s,master將不會接受任何請求

    • 減少異步復制數據丟失
      min-slaves-max-lag 這個配置,一旦ack和slave延遲過長,就認為master當即損失太多,那么就拒絕寫入請求,這樣master位同步到slave丟失數據在一個可控的范圍內
    • 腦裂導致數據丟失
      如果一個master出現了腦裂,如果不繼續,指定數量的slave發送數據,而且slave超過10s沒有給ack發送數據,那么客戶端就拒絕給客戶端寫請求

    二 Redis數據持久化RDB和AOF

    (1).RDB、AOF兩種持久化機制介紹

  • RDB 是 Redis 默認的持久化方案。在指定的時間間隔內,執行指定次數的寫操作,則會將內存中的數據寫入到磁盤中。即在指定目錄下生成一個dump.rdb文件。Redis 重啟會通過加載dump.rdb文件恢復數據。
  • 1.1 RDB核心規則配置(重點)
    save
    #save “”
    save 900 1
    save 300 10
    save 60 10000
    解說:save <指定時間間隔> <執行指定次數更新操作>,滿足條件就將內存中的數據同步到硬盤中。官方出廠配置默認是 900秒內有1個更改,300秒內有10個更改以及60秒內有10000個更改,則將內存中的數據快照寫入磁盤。
    若不想用RDB方案,可以把 save “” 的注釋打開,上面三個注釋。
    1.2 指定本地數據庫文件名,一般采用默認的 dump.rdb
    1.3 指定本地數據庫存放目錄,一般也用默認配置 dir ./
    1.4 默認開啟數據壓縮,rdbcompression yes
    解說:配置存儲至本地數據庫時是否壓縮數據,默認為yes。Redis采用LZF壓縮方式,但占用了一點CPU的時間。若關閉該選項,但會導致數據庫文件變的巨大。建議開啟。

  • AOF是對每條寫入的命令以append-only的模式寫入日志文件中,在redis重啟時通過回放redis中的指令集來重新構建數據集
  • 如果同時使用RDB和AOF持久化機制,會使用AOF重新構建數據,因為AOF中的數據更加完整
  • (2).RDB持久化機制的優點
    5. RDB會生成多個數據文件,每個數據代表了某個時刻redis中的數據,這種多數據文件的方式非常適合做冷備,這種數據文件可以放到一些安全云存儲上類如阿里云ODPS分布式存儲
    6. RDB對redis提供的對外讀寫服務影響非常小,可以使redis保持高性能,redis主進程只需要一個fork子進程執行IO操作使RDB持久化

    (3).相對于AOF來說,基于RDB重啟和恢復redis進程更加快速

    總結

    以上是生活随笔為你收集整理的Redis哨兵主备切换的数据丢失及Redis数据持久化的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。