サマリー:什么是redis的aof?aof 是 appendonly file 的縮寫(xiě), 是redis系統(tǒng)提供的一種記錄redis操作的持久化方案, 在aof生成的文件中, 將記錄發(fā)生在redis的操作, 從而達(dá)到在redis服務(wù)器重啟或者宕機(jī)后, 繼續(xù)恢復(fù)之前的數(shù)據(jù)狀態(tài)AOF文件的保存位置和 RDB文件的位置相同,都是通過(guò)dir參數(shù)設(shè)置的,默認(rèn)的文件名是appendonly.aof,可以通過(guò)appendf
什么是redis的aof?
aof 是 appendonly file 的縮寫(xiě), 是redis系統(tǒng)提供的一種記錄redis操作的持久化方案, 在aof生成的文件中, 將記錄發(fā)生在redis的操作, 從而達(dá)到在redis服務(wù)器重啟或者宕機(jī)后, 繼續(xù)恢復(fù)之前的數(shù)據(jù)狀態(tài)
AOF文件的保存位置和 RDB文件的位置相同,都是通過(guò)dir參數(shù)設(shè)置的,默認(rèn)的文件名是
appendonly.aof,可以通過(guò)appendfilename參數(shù)修改
aof的配置參數(shù)
appendonly no #是否打開(kāi)aof日志功能 appendfsync always #每一個(gè)命令, 都立即同步到aof, 安全, 速度慢 appendfsync everysec #折中方案, 每秒寫(xiě)一次 appendfsync no #寫(xiě)入工作交給操作系統(tǒng), 由操作系統(tǒng)判斷緩存去大小, 統(tǒng)一寫(xiě)入到aof, 同步頻率低, 速度快 no-appendfsync-on-rewrite yes #正在導(dǎo)出 rdb 快照過(guò)程中, 要不要停止同步 aof auto-aof-rewrite-percentage 100 #aof文件大小比起上次重寫(xiě)時(shí)的大小, 增長(zhǎng)率 100% 時(shí), 重寫(xiě) auto-aof-rewrite-min-size 64mb #aof文件, 至少超過(guò) 64M 時(shí)重寫(xiě)
問(wèn): 在dump rdb過(guò)程中, aof如果停止同步數(shù)據(jù)會(huì)不會(huì)丟失?
答: 不會(huì), 所有的操作緩存在內(nèi)存的隊(duì)列里, dump完成后統(tǒng)一操作
問(wèn): aof重寫(xiě)是什么
答: aof重寫(xiě)是指把內(nèi)存中的數(shù)據(jù), 逆化成命令, 寫(xiě)入 .aof 日志里, 以解決 aof 日志過(guò)大的問(wèn)題
問(wèn): 如果rdb文件和aof文件都存在, 優(yōu)先用誰(shuí)來(lái)恢復(fù)數(shù)據(jù)?
答: aof
問(wèn): 兩種是否可以同時(shí)使用?
答: 可以, 推薦這樣做
問(wèn): 恢復(fù)時(shí)rdb和aof哪個(gè)恢復(fù)的快?
答: rdb快, 因?yàn)樗菙?shù)據(jù)的內(nèi)存映射, 而aof是命令, 需要逐條執(zhí)行
Redis允許同時(shí)開(kāi)啟AOF和RDB,既保證了數(shù)據(jù)安全又使得進(jìn)行備份等操作十分容易。此時(shí)重新啟動(dòng)Redis后, Redis會(huì)使用AOF文件來(lái)恢復(fù)數(shù)據(jù)
實(shí)際上當(dāng)Redis服務(wù)器掛掉后, 重啟時(shí)將按照以下恢復(fù)數(shù)據(jù)到內(nèi)存
如果只配置AOF,重啟時(shí)加載AOF文件恢復(fù)數(shù)據(jù)
如果同時(shí) 配置了RDB和AOF,啟動(dòng)是只加載AOF文件恢復(fù)數(shù)據(jù)
如果只配置RDB,啟動(dòng)是將加載dump文件恢復(fù)數(shù)據(jù)