1 回答

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