AOF日志采用寫后日志,即先寫內(nèi)存,后寫日志。
為什么采用寫后日志?
Redis要求高性能,采用寫日志有兩方面好處:
避免額外的檢查開銷:Redis 在向 AOF 里面記錄日志的時候,并不會先去對這些命令進行語法檢查。所以,如果先記日志再執(zhí)行命令的話,日志中就有可能記錄了錯誤的命令,Redis 在使用日志恢復(fù)數(shù)據(jù)時,就可能會出錯。
不會阻塞當(dāng)前的寫操作
但這種方式存在潛在風(fēng)險:
如果命令執(zhí)行完成,寫日志之前宕機了,會丟失數(shù)據(jù)。
主線程寫磁盤壓力大,導(dǎo)致寫盤慢,阻塞后續(xù)操作。