這篇文章帶大家了解Redis的持久化機制(RDB和AOF),聊聊到底採用RDB還是AOF呢?希望對大家有幫助!
RDB:每隔一段時間,把記憶體中的資料寫入磁碟的臨時文件,作為快照,恢復的時候把快照文件讀進記憶體。如果宕機重啟,那麼記憶體裡的資料肯定會沒有的,那麼再次啟動redis後,則會恢復。 【相關建議:Redis影片教學】
臨時檔案--> 恢復到記憶體
##
save 900 1 save 300 10 save 60 10000 save 10 3
* 如果1个缓存更新,则15分钟后备份 * 如果10个缓存更新,则5分钟后备份 * 如果10000个缓存更新,则1分钟后备份
yes:如果save程序出錯,則停止寫入操作
yes:開啟rdb壓縮模式
yes:使用CRC64演算法校驗對rdb進行資料校驗,有10%效能損耗
`# AOF 默认关闭,yes可以开启 appendonly no # AOF 的文件名 appendfilename "appendonly.aof" # no:不同步 # everysec:每秒备份,推荐使用 # always:每次操作都会备份,安全并且数据完整,但是慢性能差 appendfsync everysec # 重写的时候是否要同步,no可以保证数据安全 no-appendfsync-on-rewrite no # 重写机制:避免文件越来越大,自动优化压缩指令,会fork一个新的进程去完成重写动作,新进程里的内存数据会被重写,此时旧的aof文件不会被读取使用,类似rdb # 当前AOF文件的大小是上次AOF大小的100% 并且文件体积达到64m,满足两者则触发重写 auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb`
使用RDB和AOF結合一起做持久化,RDB做冷備,可以在不同時期對不同版本做恢復,AOF做熱備,保證資料只有1秒的損失。當AOF破損不可用了,那麼再用RDB恢復,這樣就做到了兩者的相互結合,也就是說Redis恢復會先加載AOF,如果AOF有問題會再加載RDB,這樣就達到冷熱備份的目的了。
更多程式相關知識,請造訪:程式設計入門! !
以上是聊聊Redis的持久化機制,到底採用RDB還是AOF呢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!