redis 持久化的兩種方式及原理

redis是一個基于內(nèi)存的緩存程序,即redis是使用內(nèi)存進(jìn)行緩存數(shù)據(jù)傍药,但是可以將內(nèi)存中的數(shù)據(jù)按照一定的策略保存到磁盤上活箕,實(shí)現(xiàn)數(shù)據(jù)持久存儲,redis支持兩種不同方式的數(shù)據(jù)持久保存機(jī)制涯冠,分別是RDB和AOF炉奴。

RDB模式
基于時間的快照,值保留當(dāng)前最新的一次快照蛇更,優(yōu)點(diǎn)是執(zhí)行速度比較快盆佣,缺點(diǎn)是可能會丟失從上次快照到當(dāng)前快照未完成之間的數(shù)據(jù)。

RDB快照的執(zhí)行過程
RDB快照的實(shí)現(xiàn)過程械荷,redis從主進(jìn)程fork出一個子進(jìn)程共耍,使用寫時復(fù)制機(jī)制,子進(jìn)程將內(nèi)存的數(shù)據(jù)保存為一個臨時文件吨瞎,比如dump.rdb.tmp痹兜,當(dāng)所有的數(shù)據(jù)保存完成之后在講上一次保存的RDB文件替換掉,然后關(guān)閉子進(jìn)程颤诀,這樣可以保存沒錯做RDB快照的時候保存的數(shù)據(jù)都是完整的字旭,因?yàn)橹苯犹鎿Q了舊的RDB文件的過程中可能出現(xiàn)服務(wù)器宕機(jī),斷電等問題導(dǎo)致RDB文件還沒有保存完整崖叫,導(dǎo)致數(shù)據(jù)丟失的情況遗淳,建議使用自動備份工具或者腳本將每次生成的RDB文件在進(jìn)行備份,最大化保存歷史數(shù)據(jù)心傀。

RDB模式的優(yōu)缺點(diǎn)
1)RDB快照保存了某個時間點(diǎn)的數(shù)據(jù)屈暗,可以通過腳本執(zhí)行bgsave(非阻塞)或者save(阻塞)命令自定義時間點(diǎn)備份,同時保留多個備份脂男,當(dāng)出現(xiàn)故障時恢復(fù)到不同時間點(diǎn)的數(shù)據(jù)养叛。
2)能最大化IO性能,父進(jìn)程在保存RDB文件的時候唯一要做的是fork出一個子進(jìn)程宰翅,而后的任務(wù)都會由子進(jìn)程完成弃甥,父進(jìn)程無須任何的IO操作。
3)RDB在數(shù)據(jù)較大的情況下恢復(fù)速度比AOF快汁讼,比如幾個G甚至更大淆攻。

AOF模式:

AOF模式持久化數(shù)據(jù)過程
按照緩沖區(qū)的數(shù)據(jù)記錄加入順序阔墩,依次操作添加到指定的日志文件中,優(yōu)點(diǎn)是數(shù)據(jù)安全性搞瓶珊,缺點(diǎn)是重復(fù)的記錄也會全部記錄啸箫。
AOF和RDB一樣使用了寫時復(fù)制機(jī)制,AOF默認(rèn)為沒秒鐘fsync依次艰毒,即將執(zhí)行的命令保存到AOF文件中,即使redis服務(wù)器發(fā)生故障也只是丟失1秒鐘之內(nèi)的數(shù)據(jù)搜囱,也可以根據(jù)實(shí)際情況設(shè)置不同的fsync策略丑瞧,或設(shè)置每次執(zhí)行命令的時候執(zhí)行fsync,fsync會在后臺執(zhí)行線程蜀肘,所有主線程可以繼續(xù)處理用的正常請求而不會受到寫入AOF文件的IO影響绊汹。

AOF模式的優(yōu)缺點(diǎn)
AOF的持久存儲文件大小大于RDB格式文件。
根據(jù)定義的fsync策略(fsync是同步內(nèi)存中的redis所有已經(jīng)修改的文件到存儲設(shè)備)默認(rèn)是appendfsync everysec即每秒執(zhí)行一次fsync扮宠。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末西乖,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子坛增,更是在濱河造成了極大的恐慌获雕,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件收捣,死亡現(xiàn)場離奇詭異届案,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)罢艾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門楣颠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人咐蚯,你說我怎么就攤上這事童漩。” “怎么了春锋?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵矫膨,是天一觀的道長。 經(jīng)常有香客問我期奔,道長豆拨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任能庆,我火速辦了婚禮施禾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘搁胆。我一直安慰自己弥搞,他們只是感情好邮绿,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著攀例,像睡著了一般船逮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上粤铭,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天挖胃,我揣著相機(jī)與錄音,去河邊找鬼梆惯。 笑死酱鸭,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的垛吗。 我是一名探鬼主播凹髓,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼怯屉!你這毒婦竟也來了蔚舀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤锨络,失蹤者是張志新(化名)和其女友劉穎赌躺,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體羡儿,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡寿谴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了失受。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片讶泰。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖拂到,靈堂內(nèi)的尸體忽然破棺而出痪署,到底是詐尸還是另有隱情,我是刑警寧澤兄旬,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布狼犯,位于F島的核電站,受9級特大地震影響领铐,放射性物質(zhì)發(fā)生泄漏悯森。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一绪撵、第九天 我趴在偏房一處隱蔽的房頂上張望瓢姻。 院中可真熱鬧,春花似錦音诈、人聲如沸幻碱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽褥傍。三九已至儡嘶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間恍风,已是汗流浹背蹦狂。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留朋贬,地道東北人凯楔。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像兄世,于是被迫代替她去往敵國和親啼辣。 傳聞我的和親對象是個殘疾皇子啊研,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348