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