【1:是什么】
? ? ? ?在指定的時間間隔內(nèi)將內(nèi)存中的數(shù)據(jù)集快照寫入磁盤纲堵,也就是行話講的Snapshot快照,它恢復(fù)時是將快照文件直接讀到內(nèi)存里闰渔,快照文件默認(rèn)為.rdb文件。
? ? ? ? Redis會單獨(dú)創(chuàng)建(fork)一個子進(jìn)程來進(jìn)行持久化铐望,會先將數(shù)據(jù)寫入到一個臨時文件中冈涧,待持久化過程都結(jié)束了,再用這個臨時文件替換上次持久化好的文件正蛙。整個過程中督弓,主進(jìn)程是不進(jìn)行任何IO操作的,這就確保了極高的性能如果需要進(jìn)行大規(guī)模數(shù)據(jù)的恢復(fù)乒验,且對于數(shù)據(jù)恢復(fù)的完整性不是非常敏感愚隧,那RDB方式要比AOF方式更加的高效。RDB的缺點(diǎn)是最后一次持久化后的數(shù)據(jù)可能丟失锻全。
注:(fork)
? ? ? Fork的作用是復(fù)制一個與當(dāng)前進(jìn)程一樣的進(jìn)程狂塘。新進(jìn)程的所有數(shù)據(jù)(變量、環(huán)境變量鳄厌、程序計數(shù)器等)數(shù)值都和原進(jìn)程一致荞胡,但是是一個全新的進(jìn)程,并作為原進(jìn)程的子進(jìn)程
【2 :rdb文件保存位置(dump.rdb)】
默認(rèn)在redis的src目錄下
【3 :配置位置】
redis.conf文件中配置
【4 :觸發(fā)快照】怎樣才會生成或出現(xiàn)rdb文件
當(dāng)執(zhí)行shutdown了嚎,save泪漂,bgsave命令或者滿足持久化頻率規(guī)則都會產(chǎn)生rdb文件廊营,執(zhí)行save命令會立刻保存當(dāng)下數(shù)據(jù)到rdb文件中,冷備份即將rdb文件copy一份留備份萝勤,常見是用shell腳本來實現(xiàn)露筒,多存到不同的機(jī)器,以防機(jī)器物理損壞無法恢復(fù)數(shù)據(jù)
【5 : 如何恢復(fù)】
? ? ? ? ? ? ? ? ? ? ? ?1:將備份的dump.rdb文件移動到redis的安裝目錄并啟動服務(wù)
? ? ? ? ? ? ? ? ? ? ? ?2:CONFIG ?GET ?dir獲取目錄
【6 :優(yōu)勢】
? ? ? ? ? ? ? ? ? ? ? ?1 : 適合大規(guī)模的數(shù)據(jù)恢復(fù)
? ? ? ? ? ? ? ? ? ? ? ? 2 : 對數(shù)據(jù)完整性和一致性要求不高
【7 :劣勢】
? ? ? ? ? ? ? ? ? ? ? ? ?1:在一定間隔時間做一次備份敌卓,所以如果redis意外down掉的話慎式,就會丟失最 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 后一次快照后的所有修改
? ? ? ? ? ? ? ? ? ? ? ? ?2 :Fork的時候,內(nèi)存中的數(shù)據(jù)被克隆了一份假哎,大致2倍的膨脹性需要考慮
【8 : 停止】
? ? ? ? ? ? ? ?動態(tài)停止所有RDB保存規(guī)則的方法:redis-cli config set save ""
【9 :總結(jié)】
【10 :Which ?one】
附加:性能建議2
? ? ? ? 因為RDB文件只用作后備用途瞬捕,建議只在Slave上持久化RDB文件,而且只要15分鐘備份一次就夠了舵抹,只保留save 900 1這條規(guī)則肪虎。
? ? ? ? ?如果Enalbe AOF,好處是在最惡劣情況下也只會丟失不超過兩秒數(shù)據(jù)惧蛹,啟動腳本較簡單只load自己的AOF文件就可以了扇救。代價一是帶來了持續(xù)的IO,二是AOF rewrite的最后將rewrite過程中產(chǎn)生的新數(shù)據(jù)寫到新文件造成的阻塞幾乎是不可避免的香嗓。只要硬盤許可迅腔,應(yīng)該盡量減少AOF rewrite的頻率,AOF重寫的基礎(chǔ)大小默認(rèn)值64M太小了靠娱,可以設(shè)到5G以上沧烈。默認(rèn)超過原大小100%大小時重寫可以改到適當(dāng)?shù)臄?shù)值。
? ? ? ? 如果不Enable AOF 像云,僅靠Master-Slave Replication 實現(xiàn)高可用性也可以锌雀。能省掉一大筆IO也減少了rewrite時帶來的系統(tǒng)波動。代價是如果Master/Slave同時倒掉迅诬,會丟失十幾分鐘的數(shù)據(jù)腋逆,啟動腳本也要比較兩個Master/Slave中的RDB文件,載入較新的那個侈贷。新浪微博就選用了這種架構(gòu)