AOF :Redis 默認(rèn)不開(kāi)啟芋忿。它的出現(xiàn)是為了彌補(bǔ)RDB的不足(數(shù)據(jù)的不一致性)违帆,所以它采用日志的形式來(lái)記錄每個(gè)寫(xiě)操作律杠,并追加到文件中簸喂。Redis 重啟的會(huì)根據(jù)日志文件的內(nèi)容將寫(xiě)指令從前到后執(zhí)行一次以完成數(shù)據(jù)的恢復(fù)工作块差。(操作一次就寫(xiě)一次)
打開(kāi) redis.conf 文件侵续,找到 APPEND ONLY MODE 對(duì)應(yīng)內(nèi)容
1 redis 默認(rèn)關(guān)閉,開(kāi)啟需要手動(dòng)把no改為yes
appendonly yes
2 指定本地?cái)?shù)據(jù)庫(kù)文件名憨闰,默認(rèn)值為 appendonly.aof
appendfilename "appendonly.aof"
3 指定更新日志條件
# appendfsync always
appendfsync everysec
# appendfsync no
解說(shuō):
always:同步持久化状蜗,每次發(fā)生數(shù)據(jù)變化會(huì)立刻寫(xiě)入到磁盤(pán)中。性能較差當(dāng)數(shù)據(jù)完整性比較好(慢鹉动,安全)
everysec:出廠默認(rèn)推薦轧坎,每秒異步記錄一次(默認(rèn)值)
no:不同步
4 配置重寫(xiě)觸發(fā)機(jī)制
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
解說(shuō):當(dāng)AOF文件大小是上次rewrite后大小的一倍且文件大于64M時(shí)觸發(fā)。一般都設(shè)置為3G训裆,64M太小了眶根。
根據(jù)AOF文件恢復(fù)數(shù)據(jù)
正常情況下,將appendonly.aof 文件拷貝到redis的安裝目錄的bin目錄下边琉,重啟redis服務(wù)即可属百。但在實(shí)際開(kāi)發(fā)中,可能因?yàn)槟承┰驅(qū)е耡ppendonly.aof 文件格式異常变姨,從而導(dǎo)致數(shù)據(jù)還原失敗族扰,可以通過(guò)命令redis-check-aof --fix appendonly.aof 進(jìn)行修復(fù) 。從下面的操作演示中體會(huì)。
- AOF 的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):數(shù)據(jù)的完整性和一致性更高
缺點(diǎn):因?yàn)锳OF記錄的內(nèi)容多渔呵,文件會(huì)越來(lái)越大怒竿,數(shù)據(jù)恢復(fù)也會(huì)越來(lái)越慢。