redis持久化

redis持久化的意義

對于企業(yè)級的redis架構來說,持久化是不可減少的
企業(yè)級redis集群架構:海量數(shù)據(jù),高并發(fā),高可用
持久化主要是做在災難恢復,數(shù)據(jù)恢復,也可以歸類到高可用一個環(huán)節(jié)中。
很有可能,大量請求過來,緩存全部無法命中,這個時候就死定了,緩存雪崩問題,所有請求,沒有在redis命中,就會mysql中找,一下在mysql承接高并發(fā),就宕機了。


redis持久化:RDB AOF

1.RDB和AOF兩種持久化機制的介紹
RDB持久化機制,對redis中的數(shù)據(jù)執(zhí)行周期性持久化
AOF機制對每條寫入命令作為日志,以append-only的模式寫入一個日志文件中,在redis重啟時,可以通過回放AOF日志中的寫入指令來重構整個數(shù)據(jù)集
如果我們想要redis僅僅作為出內(nèi)存的緩沖來用,那么可以禁止ROB和AOF所有的持久化機制。
通過RDB或AOF,都可以將redis內(nèi)存中的數(shù)據(jù)給持久化到磁盤上,然后可以將這些數(shù)據(jù)備份到別的地方去
如果redis掛了,服務器上內(nèi)存和磁盤數(shù)據(jù)丟失了,可以從云服務上拷貝回來之后,放在指定目錄,重啟redis,redis就會自動根據(jù)持久化數(shù)據(jù)文件中的數(shù)據(jù),去恢復內(nèi)存中的數(shù)據(jù),繼續(xù)對外提供服務。
如果同時使用RDB和AOF兩種持久化機制,那么在redis 重啟的時候,會使用AOF來重新構建數(shù)據(jù),因為AOF中的數(shù)據(jù)更加完整。


RDB持久化機制優(yōu)點及缺點

優(yōu)點:

  • RDB會生成多個數(shù)據(jù)文件,每個數(shù)據(jù)文件都代表某一個時刻中redis的數(shù)據(jù),這種多個數(shù)據(jù)文件的方式,非常適合做冷備,可以將這種完整的數(shù)據(jù)文件發(fā)送到一些遠程的安全存儲上。
  • RDB對redis對外提供讀寫服務,影響非常小,可以讓redis保持高性能,因為redis主進程只需要fork一個子進程,讓子進程執(zhí)行磁盤IO操作來進行RDB持久化即可。
  • 相對于AOF持久化機制來說,直接基于RDB數(shù)據(jù)文件來重啟和恢復redis進程,更加敏捷。

缺點

  • 如果想要在redis故障中,盡可能少的丟失數(shù)據(jù),那么RDB沒有AOF好,一般來說,RDB數(shù)據(jù)快照文件,都是每隔5分鐘,或者更長時間生成一次,這個時候就得接受一旦redis進程宕機,那么會丟失最近5分鐘的數(shù)據(jù)。
    *RDB每次fock子進程來執(zhí)行RDB快照數(shù)據(jù)文件生成時候,如果數(shù)據(jù)文件特別大,可能會導致對客戶提供的服務暫停數(shù)毫秒,甚至數(shù)秒鐘。

AOF持久化機制優(yōu)點及缺點

優(yōu)點:

  • AOF可以更好保證數(shù)據(jù)不丟失,一般AOF每個1秒,通過后臺線程執(zhí)行一次fsync操作,最多丟失1秒鐘數(shù)據(jù)
  • AOF日志文件以append-only模式寫入,所以沒有任何磁盤尋址開銷,寫入性能非常高,而且文件不容易損壞,及時文件損壞,也是很容易修復的。
  • AOF日志文件及時過大的時候,出現(xiàn)后臺重寫操作,也不會影響客戶端的讀寫,因為在rewrite log的時候,會對其中的指導進行壓縮,創(chuàng)建出一份需要恢復數(shù)據(jù)的最小日志,在創(chuàng)建新日志文件時候,老的日志文件照常寫入,當新的merge后的日志文件ready時候,再交換新老日志文件即可。

缺點:

  • 對于同一份數(shù)據(jù)來說,AOF日志文件通常比RDB數(shù)據(jù)快照文件更大
  • AOF開啟后,支持寫QPS會比RDB支持的寫QPS低,因為AOF一般會配置成每秒fsync一次日志文件,當然,每秒一次fsync,性能也還是很高的

RDB和AOF如何選擇
  • 不要僅僅使用RDB,因為那樣會導致你丟失很多數(shù)據(jù)
  • 也不要僅僅使用AOF,因為那樣有兩個問題,第一,你通過AOF做冷備,沒有RDB做冷備,來的恢復速度更快; 第二,RDB每次簡單粗暴生成數(shù)據(jù)快照,更加健壯,可以避免AOF這種復雜的備份和恢復機制的bug
  • 綜合使用AOF和RDB兩種持久化機制,用AOF來保證數(shù)據(jù)不丟失,作為數(shù)據(jù)恢復的第一選擇; 用RDB來做不同程度的冷備,在AOF文件都丟失或損壞不可用的時候,還可以使用RDB來進行快速的數(shù)據(jù)恢復
AOF rewrite原理剖析.png
RDB和AOF的介紹.png
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容