Redis同步和持久化機制

一、Redis的主從復(fù)制
Redis的復(fù)制功能是支持多個數(shù)據(jù)庫之間的數(shù)據(jù)同步。一類是主數(shù)據(jù)庫(master),一類是從數(shù)據(jù)庫(slave),主數(shù)據(jù)庫可以進行讀寫操作,當發(fā)生寫操作的時候自動將數(shù)據(jù)同步到從數(shù)據(jù)庫,而從數(shù)據(jù)庫一般是只讀的,并接收主數(shù)據(jù)庫同步過來的數(shù)據(jù),一個主數(shù)據(jù)庫可以有多個從數(shù)據(jù)庫,而從數(shù)據(jù)庫只能有一個主數(shù)據(jù)庫。
通過redis的復(fù)制功能可以很好地實現(xiàn)數(shù)據(jù)庫的讀寫分離,提高服務(wù)器的負載能力,主數(shù)據(jù)庫主要負責寫操作,而從服務(wù)器負責讀操作。
redis主從復(fù)制的過程:
1、當一個從數(shù)據(jù)庫啟動時,會向主數(shù)據(jù)庫發(fā)送sync命令
2、主數(shù)據(jù)庫接收到sync命令后會開始在后臺保存快照(執(zhí)行rdb操作),并將保存期間接收到的命令緩存起來
3、當快照完成后,redis會將快照文件和所有緩存的命令發(fā)送給從數(shù)據(jù)庫
4、從數(shù)據(jù)庫收到命令后,會載入快照文件并執(zhí)行收到的緩存的命令
二、Redis的持久化機制
redis持久化,就是將內(nèi)存數(shù)據(jù)保存到硬盤
包括RDB和AOF兩種模式
1、RDB持久化
是以二進制文件,在某個時間點將數(shù)據(jù)寫入一個臨時文件,持久化結(jié)束后,用這個臨時文件替換上一次持久化的文件,達到數(shù)據(jù)恢復(fù)。
優(yōu)點:使用單獨子進程進行持久化,主進程不會進行任何IO操作,保證了redis的高性能
缺點:RDB是間隔一段時間持久化,如果持久化期間redis發(fā)生故障,會發(fā)生數(shù)據(jù)丟失。
2、AOF持久化
Append-only file,將“操作+數(shù)據(jù)”以格式化指令的方式追加到操作日志文件的尾部,在append操作返回后(已經(jīng)寫入到文件或者即將寫入),才進行實際數(shù)據(jù)的變更,“日志文件”保存了歷史所有的操作過程;當server需要數(shù)據(jù)恢復(fù)時,可以直接replay此日志文件,即可還原所有的操作過程。AOF相對可靠,文件內(nèi)容是字符串,非常容易閱讀和理解。
優(yōu)點:可以保持更高的數(shù)據(jù)完整性
缺點:AOF文件比RDB文件大,且恢復(fù)速度慢。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容