持久化原理:
專注于為中小企業(yè)提供做網(wǎng)站、成都做網(wǎng)站服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)橋東免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。AOF<二進制文件>比RDB方式有更好的持久性。
redis會將每一個收到的寫命令都通過write函數(shù)追加到文件最后,類似msyql的binlog。
當redis重啟時,會通過重新執(zhí)行文件中保存的寫命令來在內(nèi)存中重建整個數(shù)據(jù)庫的內(nèi)容。
優(yōu)點:可以保持更高的數(shù)據(jù)完整性。
如果設(shè)置追加file的時間是1s,那么redis發(fā)生故障,最多會丟失1s的數(shù)據(jù);
如果日志寫入不完整,支持redis-check-aof來進行日志修復(fù);
AOF文件沒被rewrite之前(文件過大時會對命令進行合并重寫),
可以刪除其中的某些命令(比如誤操作的flushall)。
缺點:AOF文件比RDB文件大,且恢復(fù)速度慢。?
AOF默認關(guān)閉。
配置文件相關(guān)參數(shù):
appendonly yes
appendfilename "" ? ? #AOF保存的文件名
同步方式相關(guān)的配置:
appendfsync always ? ?#一旦插入命令,立即同步到磁盤,完全的持久化,但是速度慢,不推薦
appendfsync everysec ? ? ? ?#AOF每秒進行同步
appendfsync no ? ? ? ? #不自動同步,性能最好,但是持久化沒有保證
存儲過程:
將快照內(nèi)容以命令的形式追加到AOF文件中,
所以隨著追加,AOF文件會越來越大,保存的AOF文件存儲了執(zhí)行的所有命令,
所以可以進行修改文件來撤銷輸錯的命令(在重寫之前,如果重寫了就沒有辦法了)?
對AOF文件進行重寫:(解決AOF文件越來越大的問題)
redis-cli -h ip -p port bgrewriteaof
重寫命令的操作過程:
在當前的快照保存結(jié)束后,開啟一個子進程,將AOF文件進行重寫,
合并set命令等操作到一個臨時文件,達到縮小文件大小的目的。
重寫結(jié)束后,將臨時文件替換為新的AOF文件。
(重寫過程中如果有新的redis操作命令,會提交到緩存中,重寫結(jié)束后追加到AOF文件內(nèi))?
說明:redis2.4以上版本,重寫機制自動觸發(fā)。觸發(fā)的相關(guān)redis.conf配置如下:
auto-aof-rewrite-percentage 100
當目前的AOF文件大小超過上一次重寫文件大小的百分之幾時進行重寫,
如果沒有重啟過,則以啟動時的AOF文件大小為依據(jù))
auto-aof-rewrite-min-size 64mb(允許重寫的最小AOF文件大?。?;
數(shù)據(jù)恢復(fù):
重啟redis服務(wù),前提是配置文件必須設(shè)置了appendonly yes,然后會從appendfile的文件加載文件。
反之是從RDB中加載數(shù)據(jù)的。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。