redis的持久化機制和數據同步


本文參考 http://blog.csdn.net/qq_28602957/article/details/52732615

Redis是一個支持持久化的內存數據庫,也就是說redis需要經常將內存中的數據同步到硬盤來保證持久化。

redis支持兩種持久化的方式:1、snapshotting(快照)也是默認方式  2、Append-only file(縮寫是aof)的方式

snapshotting(快照)也是默認方式 

剛裝完redis的時候沒有dump.rdb文件,滿足快照要求后,系統會自動生成dump.rdb文件,且文件類型為二進制文件。

 

Append-only file(縮寫是aof)的方式

由於快照方式是在一定的時間間隔做一次,所以redis宕機的話會丟失最后一次快照以后修改的內容,aof有更好的持久化性,使用aof時,redis會將每一個收到的寫命令都通過write函數追加到文件中,當redis重啟時,會通過重新執行文件中保存的寫命令在內存中重建整個數據庫的內容。

但是由於操作系統(OS)會在內核中緩存write做的修改,所以可能不是立即寫到磁盤上的。這樣aof方式的持久化還是有可能會丟失部分修改。

可以通過配置文件告訴redis我們想通過fsync函數強制OS寫入到磁盤的時機。

配置文件為redis.conf

將no改為yes,滿足aof方式后,系統會自動生成一個appendonly.aof文件,且非二進制,用cat查看,里面保存的是剛新加的命令。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM