redis持久化
rdb是默認的持久化方式
rdb快照數據不全
rdb的觸發(fā):手動save,bgsave
自動:conf配置 save seconds times save seconds times 幾秒之內幾次寫操作會觸發(fā),任何一個滿足都會出發(fā)
save,shutdown,slave命令都會觸發(fā)
fork子進程內存分配策略?0,1,2三種方式

aof 追加命令
aof持久化的時機,3種策略:
appendfsync always (每次操作都寫入aof文件,丟失最少,down機可能丟失一個事件循環(huán)內的數據,效率低,慢)
always是在一個while循環(huán)進行的,每一輪循環(huán)將step1 前一輪的aof_buf數據刷盤,step2.新的數據寫入aof_buf。所以可能會丟失一個循環(huán)的數據。
appendfsync everysec (每秒鐘同步一次,默認策略,數據安全和效率介于另外兩者之間)
appendfsync no (redis不主動同步,由操作系統(tǒng)同步刷盤到aof文件,丟失數據不可預估,效率最高)
aof因為是命令追加的方式,aof文件會比rdb大很多,有時會迅速變大,怎么解決?
aof文件重寫
選型?
aof和rdb各有優(yōu)缺點,看更看重數據一致性還是性能、啟動效率,
在兩個都開啟的情況下,啟動后加載aof的數據,會比較慢
可以手動處理,二者都開啟,先用rdb回復大部分數據,再用aof追加補上新的數據
4.0版本以后aof文件由rdb二進制數據和命令共同組成,前一部分是rewirte的結果。這樣可以在壓縮文件的同時盡可能保證數據的完整性。
redis: 優(yōu)先使用aof日志,沒有的話使用rdb
rdb:快照,二進行文件,文件名.RDB
rdb文件創(chuàng)建方式:手動(save、bgsave)、自動(/etc/redis.conf配置,使用bgsave)。
mysql:redolog
浙公網安備 33010602011771號