redis 持久化

一、RDB和AOF兩種持久化機制的介紹

RDB持久化機制捏检,對redis中的數(shù)據(jù)執(zhí)行周期性的持久化

AOF機制對每條寫入命令作為日志荞驴,以append-only的模式寫入一個日志文件中,在redis重啟的時候贯城,可以通過回放AOF日志中的寫入指令來重新構建整個數(shù)據(jù)集

如果我們想要redis僅僅作為純內存的緩存來用熊楼,那么可以禁止RDB和AOF所有的持久化機制

通過RDB或AOF,都可以將redis內存中的數(shù)據(jù)給持久化到磁盤上面來能犯,然后可以將這些數(shù)據(jù)備份到別的地方去鲫骗,比如說阿里云犬耻,云服務

如果redis掛了,服務器上的內存和磁盤上的數(shù)據(jù)都丟了执泰,可以從云服務上拷貝回來之前的數(shù)據(jù)香追,放到指定的目錄中,然后重新啟動redis坦胶,redis就會自動根據(jù)持久化數(shù)據(jù)文件中的數(shù)據(jù)透典,去恢復內存中的數(shù)據(jù),繼續(xù)對外提供服務

如果同時使用RDB和AOF兩種持久化機制顿苇,那么在redis重啟的時候峭咒,會使用AOF來重新構建數(shù)據(jù),因為AOF中的數(shù)據(jù)更加完整

二纪岁、RDB持久化機制的優(yōu)點

1. RDB會生成多個數(shù)據(jù)文件凑队,每個數(shù)據(jù)文件都代表了某一個時刻中redis的數(shù)據(jù),這種多個數(shù)據(jù)文件的方式幔翰,非常適合做冷備漩氨,可以將這種完整的數(shù)據(jù)文件發(fā)送到一些遠程的安全存儲上去,比如說Amazon的S3云服務上去遗增,在國內可以是阿里云的ODPS分布式存儲上叫惊,以預定好的備份策略來定期備份redis中的數(shù)據(jù)

2. RDB對redis對外提供的讀寫服務,影響非常小做修,可以讓redis保持高性能霍狰,因為redis主進程只需要fork一個子進程,讓子進程執(zhí)行磁盤IO操作來進行RDB持久化即可

3. 相對于AOF持久化機制來說饰及,直接基于RDB數(shù)據(jù)文件來重啟和恢復redis進程蔗坯,更加快速

三、RDB持久化機制的缺點

1. 如果想要在redis故障時燎含,盡可能少的丟失數(shù)據(jù)宾濒,那么RDB沒有AOF好。一般來說屏箍,RDB數(shù)據(jù)快照文件绘梦,都是每隔5分鐘,或者更長時間生成一次铣除,這個時候就得接受一旦redis進程宕機谚咬,那么會丟失最近5分鐘的數(shù)據(jù)

2. RDB每次在fork子進程來執(zhí)行RDB快照數(shù)據(jù)文件生成的時候,如果數(shù)據(jù)文件特別大尚粘,可能會導致對客戶端提供的服務暫停數(shù)毫秒择卦,或者甚至數(shù)秒

四、AOF持久化機制的優(yōu)點

(1)AOF可以更好的保護數(shù)據(jù)不丟失,一般AOF會每隔1秒秉继,通過一個后臺線程執(zhí)行一次fsync操作祈噪,最多丟失1秒鐘的數(shù)據(jù)

(2)AOF日志文件以append-only模式寫入,所以沒有任何磁盤尋址的開銷尚辑,寫入性能非常高辑鲤,而且文件不容易破損,即使文件尾部破損杠茬,也很容易修復

(3)AOF日志文件即使過大的時候月褥,出現(xiàn)后臺重寫操作,也不會影響客戶端的讀寫瓢喉。因為在rewrite log的時候宁赤,會對其中的指導進行壓縮,創(chuàng)建出一份需要恢復數(shù)據(jù)的最小日志出來栓票。再創(chuàng)建新日志文件的時候决左,老的日志文件還是照常寫入。當新的merge后的日志文件ready的時候走贪,再交換新老日志文件即可佛猛。

(4)AOF日志文件的命令通過非常可讀的方式進行記錄坠狡,這個特性非常適合做災難性的誤刪除的緊急恢復继找。比如某人不小心用flushall命令清空了所有數(shù)據(jù),只要這個時候后臺rewrite還沒有發(fā)生擦秽,那么就可以立即拷貝AOF文件码荔,將最后一條flushall命令給刪了漩勤,然后再將該AOF文件放回去感挥,就可以通過恢復機制,自動恢復所有數(shù)據(jù)

五越败、AOF持久化機制的缺點

(1)對于同一份數(shù)據(jù)來說触幼,AOF日志文件通常比RDB數(shù)據(jù)快照文件更大

(2)AOF開啟后,支持的寫QPS會比RDB支持的寫QPS低究飞,因為AOF一般會配置成每秒fsync一次日志文件置谦,當然,每秒一次fsync亿傅,性能也還是很高的

(3)以前AOF發(fā)生過bug媒峡,就是通過AOF記錄的日志,進行數(shù)據(jù)恢復的時候葵擎,沒有恢復一模一樣的數(shù)據(jù)出來谅阿。所以說,類似AOF這種較為復雜的基于命令日志/merge/回放的方式,比基于RDB每次持久化一份完整的數(shù)據(jù)快照文件的方式签餐,更加脆弱一些寓涨,容易有bug。不過AOF就是為了避免rewrite過程導致的bug氯檐,因此每次rewrite并不是基于舊的指令日志進行merge的戒良,而是基于當時內存中的數(shù)據(jù)進行指令的重新構建,這樣健壯性會好很多冠摄。

六糯崎、RDB和AOF到底該如何選擇

(1)不要僅僅使用RDB,因為那樣會導致你丟失很多數(shù)據(jù)

(2)也不要僅僅使用AOF河泳,因為那樣有兩個問題拇颅,第一,你通過AOF做冷備乔询,沒有RDB做冷備樟插,來的恢復速度更快; 第二,RDB每次簡單粗暴生成數(shù)據(jù)快照竿刁,更加健壯黄锤,可以避免AOF這種復雜的備份和恢復機制的bug

(3)綜合使用AOF和RDB兩種持久化機制,用AOF來保證數(shù)據(jù)不丟失食拜,作為數(shù)據(jù)恢復的第一選擇; 用RDB來做不同程度的冷備鸵熟,在AOF文件都丟失或損壞不可用的時候,還可以使用RDB來進行快速的數(shù)據(jù)恢復

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末负甸,一起剝皮案震驚了整個濱河市流强,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌呻待,老刑警劉巖打月,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蚕捉,居然都是意外死亡奏篙,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門迫淹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秘通,“玉大人,你說我怎么就攤上這事敛熬》蜗。” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵应民,是天一觀的道長话原。 經(jīng)常有香客問我炸茧,道長,這世上最難降的妖魔是什么稿静? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任梭冠,我火速辦了婚禮,結果婚禮上改备,老公的妹妹穿的比我還像新娘控漠。我一直安慰自己,他們只是感情好悬钳,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布盐捷。 她就那樣靜靜地躺著,像睡著了一般默勾。 火紅的嫁衣襯著肌膚如雪碉渡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天母剥,我揣著相機與錄音滞诺,去河邊找鬼。 笑死环疼,一個胖子當著我的面吹牛习霹,可吹牛的內容都是我干的。 我是一名探鬼主播炫隶,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼淋叶,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了伪阶?” 一聲冷哼從身側響起煞檩,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎栅贴,沒想到半個月后斟湃,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡筹误,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年桐早,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厨剪。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖友存,靈堂內的尸體忽然破棺而出祷膳,到底是詐尸還是另有隱情,我是刑警寧澤屡立,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布直晨,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏勇皇。R本人自食惡果不足惜罩句,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望敛摘。 院中可真熱鬧门烂,春花似錦、人聲如沸兄淫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捕虽。三九已至慨丐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泄私,已是汗流浹背房揭。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晌端,地道東北人崩溪。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像斩松,于是被迫代替她去往敵國和親伶唯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內容

  • 本文翻譯自官方文檔http://redis.io/topics/persistence 惧盹。 Redis 持久化 R...
    六尺帳篷閱讀 1,629評論 1 15
  • 本文檔翻譯自http://redis.io/topics/persistence乳幸。 這篇文章提供了 Redis 持...
    daos閱讀 690評論 0 10
  • Redis 持久化: 常用的兩種持久化 提供了多種不同級別的持久化方式:一種是RDB,另一種是AOF. RDB 持...
    邊學邊記閱讀 1,125評論 0 1
  • Redis持久化: 提供了多種不同級別的持久化方式:一種是RDB,另一種是AOF. RDB 持久化可以在指定的時間...
    不姓馬的小馬哥閱讀 638評論 0 10
  • 介紹 首先,我們應該明確持久化的數(shù)據(jù)有什么用钧椰,答案是用于重啟后的數(shù)據(jù)恢復粹断。 Redis是一個內存數(shù)據(jù)庫,無論是RD...
    小王寫bug閱讀 913評論 0 1