一、RDB:Redis Database 1.RDB是什么? 就是在指定的時間間隔內(nèi),將內(nèi)存中的數(shù)據(jù)集快照(Snapshot)寫入到本地磁盤 2.Fork:Fork的作用是復(fù)制一個與當(dāng)前進(jìn)程一樣的進(jìn)程,新進(jìn)程的所有數(shù)據(jù)都和原進(jìn)程一致,但是是一個全新的進(jìn)程,并作為遠(yuǎn)進(jìn)程的子進(jìn)程 3.rdb保存的是dump.rdb文件,隔一段時間redis都會備份一份最新的數(shù)據(jù)去替換掉原來的dump.rdb文件以保證備份數(shù)據(jù)的完整性 4.當(dāng)服務(wù)器器重啟的時候redis會自動加載dump.rdb文件恢復(fù)數(shù)據(jù) 5.rdb是整個內(nèi)存的壓縮過的Snapshot,rdb的數(shù)據(jù)結(jié)構(gòu),可以配置復(fù)合的快照觸發(fā)條件, 默認(rèn)的快照觸發(fā)條件:是1分鐘內(nèi)改變了1萬次或5分鐘內(nèi)改了10次,或15分鐘內(nèi)改了1次 6.快照: ·?save:觸發(fā)快照,save時只管保存,其他不管,全部阻塞 ·?BGSAVE:Redis會在后臺異步進(jìn)行快照操作,快照同時還可以相應(yīng)客戶端請求,可以通過lastsave命令來獲取最后一次成功執(zhí)行快照的時間 · 執(zhí)行flushall命令,也會產(chǎn)生dump.rdb文件,但里面是空的,無意義 7.如何恢復(fù):將備份文件dump.rdb文件移動到redis安裝目錄并啟動服務(wù)即可 8.優(yōu)勢:適合大規(guī)模的數(shù)據(jù)恢復(fù) 9.劣勢: ·??在一定間隔時間做一次備份,所以如果redis意外down掉的話,就會丟失最后一次快照后的所有修改 ·? Fork的時候,內(nèi)存中的數(shù)據(jù)被克隆了一份,大致2倍的膨脹性需要考慮 ? 二、AOF:Append Only File 1.AOF是什么? AOF是以日志的形式來記錄每個寫操作,將redis執(zhí)行過的所有寫指令記錄下來(讀指令不記錄),只許追加文件,但不可以改寫文件,reids啟動之初會讀取該文件重新構(gòu)建數(shù)據(jù)。 換言之,就是redis啟動的時候根據(jù)這個日志文件中的內(nèi)容從前到后執(zhí)行一遍以完成數(shù)據(jù)的恢復(fù)工作。 2.aof保存的是appendonly.aof文件,appendonly.aof文件和dump.rdb文件是可以共存的,如果兩個文件都在,redis會加載aof文件,如果aof文件出錯則啟動不起來; 如果執(zhí)行了flushall命令,這時可以通過手動刪除appendonly.aof文件中的flushall命令達(dá)到數(shù)據(jù)恢復(fù)的目的; 如果appendonly.aof文件語法有誤,可以手動加載redis-check-aof文件恢復(fù),redis-check-aof文件會自動刪除那些語法有誤的日志 3.aof啟動/修復(fù)/恢復(fù): · 正常恢復(fù): ·?啟動:設(shè)置Yes:修改默認(rèn)的appendonly? ?no 改為yes · 備份:最好將aof文件備份一份到其他電腦上,這樣就算這臺電腦的硬件壞了也可以使用備份文件 · 恢復(fù):重啟redis然后重新加載 · 異常恢復(fù):redis-check-aof --fix 進(jìn)行修復(fù) 3.Appendfsync:追鎖策略 · Always:同步持久化,每次發(fā)生數(shù)據(jù)變更會被立即記錄到磁盤,性能較差但數(shù)據(jù)完整性較好 · Everysec:出廠默認(rèn)推薦,異步操作,每秒記錄,如果一秒內(nèi)宕機(jī),則丟失這一秒的數(shù)據(jù) · No:從不同步 4.rewrite:重寫策略 ·? 是什么? aof采用文件追加的方式,文件難免會越來越大為避免出現(xiàn)這種情況,新增了重寫機(jī)制,當(dāng)aof文件的大小超過所設(shè)定的閾值時,redis就會啟動aof文件的內(nèi)容壓縮,只保留可以恢復(fù)數(shù)據(jù)的最小指令集 ·? 重寫原理:aof文件持續(xù)增長而過大時,會fork出一條新進(jìn)程來將文件重寫,這點(diǎn)和快照有點(diǎn)相似 ·? 觸發(fā)機(jī)制:redis會記錄上次重寫時的aof大小,默認(rèn)配置是當(dāng)aof文件大小是上次rewrite后大小的一倍且文件大于64M時觸發(fā) 5.優(yōu)勢: aof每秒同步策略效率較好,不同步效率和rdb相同 6.劣勢:aof運(yùn)行效率要慢于rdb,相同數(shù)據(jù)集的數(shù)據(jù)而言aof文件要遠(yuǎn)大于rdb文件,恢復(fù)速度慢于rdb ? 來源:https://www./content-2-665101.html |
|