Redis的持久化--RDB的工作原理及引發的問題

Redis持久化RDB模式的工作原理:

Redis持久化RDB模式,Redis藉助了fork命令的copy on write機制。在生成快照時,將當前進程整個複製出來,fork出一個子進程,然後在子進程中循環所有的數據,將數據寫成爲RDB文件。

 

Redis持久化RDB模式引發的問題:

RDB模式需要Redis服務所佔內存的1倍的內存

例如一臺機器總共16G內存,用了10G內存做Redis服務,假如這10G內存都佔滿了

這時運行save命令,這時會把10G的進程再複製一遍,變成20G,超過了16G就產生交換,

如果虛擬內存設置了爲4G,這樣save也能完成,由於引發大量的交換,會很慢;

如果虛擬內存設置了小於4G,這時Redis就會崩潰,而且數據也不會完整的保存到快照文件中,

重新啓動,就會發現數據已經丟失了很多。

發佈了46 篇原創文章 · 獲贊 5 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章