2種AOF RDB RDB方式原理:當redis需要做持久化時(執(zhí)行SAVA或者BGSAVA命令,或者是達到配置條件時執(zhí)行),redis會fork一個子進程,子進程將數(shù)據(jù)寫到磁盤上一個臨時RDB文件中,當子進程完成寫臨時文件后,將原來的RDB替換掉(默認文件名為dump.rdb)
AOF方式原理:AOF可以做到全程持久化,Redis每執(zhí)行一個修改數(shù)據(jù)的命令,都會把這個命令添加到AOF文件中,當Redis重啟時,將會讀取AOF文件進行“重放”以恢復到Redis關(guān)閉前的最后時刻。
由于os會在內(nèi)核中緩存write做的修改,所以可能不是立即寫到磁盤上。
這樣aof方式的持久化也還是有可能會丟失部分修改。
不過我們可以通過配置文件告訴redis我們想要通過fsync函數(shù)強制os寫入到磁盤的時機。
兩者可以共存