1 回答

TA貢獻1829條經驗 獲得超7個贊
redis 數據持久化
1、快照(snapshots)
缺省情況情況下,Redis把數據快照存放在磁盤上的二進制文件中,文件名為dump.rdb。你可以配置Redis的持久化策略,例如數據集中每N秒鐘有超過M次更新,就將數據寫入磁盤;或者你可以手工調用命令SAVE或BGSAVE。
?
數據保存的目錄:
?
工作原理
Redis forks.
子進程開始將數據寫到臨時RDB文件中。
當子進程完成寫RDB文件,用新文件替換老文件。
這種方式可以使Redis使用copy-on-write技術。
2、APPEND ONLY MODE(AOF)
快照模式并不十分健壯,當系統停止,或者無意中Redis被kill掉,最后寫入Redis的數據就會丟失。這對某些應用也許不是大問題,但對于要求高可靠性的應用來說,Redis就不是一個合適的選擇。
Append-only文件模式是另一種選擇。
你可以在配置文件中打開AOF模式:
?
選項:
1、appendfsync no
當設置appendfsync為no的時候,Redis不會主動調用fsync去將AOF日志內容同步到磁盤,所以這一切就完全依賴于操作系統的調試了。對大多數Linux操作系統,是每30秒進行一次fsync,將緩沖區中的數據寫到磁盤上。
2、appendfsync everysec
當設置appendfsync為everysec的時候,Redis會默認每隔一秒進行一次fsync調用,將緩沖區中的數據寫到磁盤。但是當這一 次的fsync調用時長超過1秒時。Redis會采取延遲fsync的策略,再等一秒鐘。也就是在兩秒后再進行fsync,這一次的fsync就不管會執行多長時間都會進行。這時候由于在fsync時文件描述符會被阻塞,所以當前的寫操作就會阻塞。
- 1 回答
- 0 關注
- 682 瀏覽
添加回答
舉報