溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Redis持久化方案RDB和AOF(理論)

發(fā)布時(shí)間:2020-07-14 01:22:12 來源:網(wǎng)絡(luò) 閱讀:1095 作者:張德帥ya 欄目:數(shù)據(jù)庫

redis和memcache的區(qū)別是什么?

? ? 簡單來說,如果沒有持久化的redis,就和memcache一樣了,相當(dāng)于一個(gè)緩存數(shù)據(jù)庫。


redis是如何解決數(shù)據(jù)持久化的?

????redis有兩種持久化方案:RDB(Redis DataBases)和AOF(AppendOnly File)


RDB持久化(詳細(xì)分析:https://blog.51cto.com/13690439/2118462)

? ? RDB是snapshot快照<二進(jìn)制文件>存儲(chǔ),是默認(rèn)的持久化方式。

? ? RDB會(huì)按照一定的策略,周期性的將數(shù)據(jù)保存到磁盤。(下個(gè)周期為到來時(shí)故障,會(huì)丟數(shù)據(jù))

? ? 借助fork命令的copy on write機(jī)制,在快照生成時(shí),將當(dāng)前進(jìn)程fork出一個(gè)子進(jìn)程,

? ? 然后再子進(jìn)程中循環(huán)所有數(shù)據(jù),將數(shù)據(jù)寫成RDB文件。


AOF持久化(詳細(xì)分析:https://blog.51cto.com/13690439/2118465)

? ? AOF<二進(jìn)制文件>比RDB方式有更好的持久性。

? ? redis會(huì)將每一個(gè)收到的寫命令都通過write函數(shù)追加到文件最后,類似msyql的binlog。

? ? 當(dāng)redis重啟時(shí),會(huì)通過重新執(zhí)行文件中保存的寫命令來在內(nèi)存中重建整個(gè)數(shù)據(jù)庫的內(nèi)容。


簡單來說:

????RDB:是按照策略周期性的進(jìn)行持久化數(shù)據(jù);

? ? AOF:是不斷的去記錄修改操作;


持久化方式的選擇:

? ? RDB和AOF操作都是順序IO操作,性能都很高。

? ? 而同時(shí)在通過RDB文件或者AOF日志進(jìn)行數(shù)據(jù)庫恢復(fù)的時(shí)候,也是順序的讀取數(shù)據(jù)加載到內(nèi)存中。

? ? 所以也不會(huì)造成磁盤的隨機(jī)讀。


? ? 通常,如果你要想提供很高的數(shù)據(jù)保障性,那么建議你同時(shí)使用兩種持久化方式。

? ? 如果你可以接受災(zāi)難帶來的幾分鐘的數(shù)據(jù)丟失,那么你可以僅使用RDB。


在數(shù)據(jù)恢復(fù)方面:

? ? RDB的啟動(dòng)時(shí)間會(huì)更短,原因有兩個(gè):

? ? ? ? 1、RDB文件中每一條數(shù)據(jù)只有一條記錄,不會(huì)像AOF日志那樣可能有一條數(shù)據(jù)的多次操作記錄。

? ? ? ? ? ? ?所以每條數(shù)據(jù)只需要寫一次就行了。

? ? ? ? 2、RDB文件的存儲(chǔ)格式和Redis數(shù)據(jù)在內(nèi)存中的編碼格式是一致的,不需要再進(jìn)行數(shù)據(jù)編碼工作,

? ? ? ? ? ? ?所以在CPU消耗上要遠(yuǎn)小于AOF日志的加載。?

市場常見架構(gòu):

? ? ? 目前,通常的設(shè)計(jì)思路是利用Replication機(jī)制來彌補(bǔ)aof、snapshot性能上的不足,達(dá)到了數(shù)據(jù)可持久化。

? ? ? 即Master上Snapshot和AOF都不做,來保證Master的讀寫性能,

? ? ? 而Slave上則同時(shí)開啟Snapshot和AOF來進(jìn)行持久化,保證數(shù)據(jù)的安全性。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI