您好,登錄后才能下訂單哦!
持久化原理:
? ? ? ?AOF<二進(jìn)制文件>比RDB方式有更好的持久性。
? ? ? ?redis會(huì)將每一個(gè)收到的寫命令都通過(guò)write函數(shù)追加到文件最后,類似msyql的binlog。
? ? ? ?當(dāng)redis重啟時(shí),會(huì)通過(guò)重新執(zhí)行文件中保存的寫命令來(lái)在內(nèi)存中重建整個(gè)數(shù)據(jù)庫(kù)的內(nèi)容。
? ? ? ? ?
優(yōu)點(diǎn):可以保持更高的數(shù)據(jù)完整性。
? ? ? ? ? ? 如果設(shè)置追加file的時(shí)間是1s,那么redis發(fā)生故障,最多會(huì)丟失1s的數(shù)據(jù);
? ? ? ? ? ? 如果日志寫入不完整,支持redis-check-aof來(lái)進(jìn)行日志修復(fù);
? ? ? ? ? ? AOF文件沒(méi)被rewrite之前(文件過(guò)大時(shí)會(huì)對(duì)命令進(jìn)行合并重寫),
? ? ? ? ? ? 可以刪除其中的某些命令(比如誤操作的flushall)。
缺點(diǎn):AOF文件比RDB文件大,且恢復(fù)速度慢。?
? ?
? ?AOF默認(rèn)關(guān)閉。
? ?
配置文件相關(guān)參數(shù):
? ? ? ? ? ? appendonly yes
? ? ? ? ? ? appendfilename "" ? ? #AOF保存的文件名
? ? ? ? ? ??
同步方式相關(guān)的配置:
? ? ? ? ? ? appendfsync always ? ?#一旦插入命令,立即同步到磁盤,完全的持久化,但是速度慢,不推薦
? ? ? ? ? ? appendfsync everysec ? ? ? ?#AOF每秒進(jìn)行同步
? ? ? ? ? ? appendfsync no ? ? ? ? #不自動(dòng)同步,性能最好,但是持久化沒(méi)有保證
? ? ? ? ? ??
存儲(chǔ)過(guò)程:
? ? ? ? ?將快照內(nèi)容以命令的形式追加到AOF文件中,
? ? ? ? ?所以隨著追加,AOF文件會(huì)越來(lái)越大,保存的AOF文件存儲(chǔ)了執(zhí)行的所有命令,
? ? ? ? ?所以可以進(jìn)行修改文件來(lái)撤銷輸錯(cuò)的命令(在重寫之前,如果重寫了就沒(méi)有辦法了)?
? ? ? ? ?
對(duì)AOF文件進(jìn)行重寫:(解決AOF文件越來(lái)越大的問(wèn)題)
? ? ? ? ?redis-cli -h ip -p port bgrewriteaof
? ? ? ? ?
重寫命令的操作過(guò)程:
? ? ? ? ?在當(dāng)前的快照保存結(jié)束后,開啟一個(gè)子進(jìn)程,將AOF文件進(jìn)行重寫,
? ? ? ? ?合并set命令等操作到一個(gè)臨時(shí)文件,達(dá)到縮小文件大小的目的。
? ? ? ? ?重寫結(jié)束后,將臨時(shí)文件替換為新的AOF文件。
? ? ? ? ?(重寫過(guò)程中如果有新的redis操作命令,會(huì)提交到緩存中,重寫結(jié)束后追加到AOF文件內(nèi))?
? ? ? ? ?
? ? ? ? ?說(shuō)明:redis2.4以上版本,重寫機(jī)制自動(dòng)觸發(fā)。觸發(fā)的相關(guān)redis.conf配置如下:
? ? ? ? ?auto-aof-rewrite-percentage 100
? ? ? ? ?當(dāng)目前的AOF文件大小超過(guò)上一次重寫文件大小的百分之幾時(shí)進(jìn)行重寫,
? ? ? ? ?如果沒(méi)有重啟過(guò),則以啟動(dòng)時(shí)的AOF文件大小為依據(jù))
? ? ? ? ?auto-aof-rewrite-min-size 64mb(允許重寫的最小AOF文件大小);
? ? ? ? ?
數(shù)據(jù)恢復(fù):
? ? ? ? 重啟redis服務(wù),前提是配置文件必須設(shè)置了appendonly yes,然后會(huì)從appendfile的文件加載文件。
? ? ? ? 反之是從RDB中加載數(shù)據(jù)的。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。