天天看點

2021-05-13 Redis面試題 RDB的優缺點?

RDB的優缺點?

  • **優點:**RDB是一個非常緊湊(compact)的檔案,它儲存了Redis在某個時間點上的資料集。這種檔案非常适合用于進行備份:比如說,你可以在最近的24小時内,每小時備份一次RDB檔案,并且在每個月的每一天,也備份一個RDB檔案。這樣的話,即使遇上問題,也可以随時将資料集還原到不同的版本。RDB非常适用于災難恢複(disaster recovery):它隻有一個檔案,并且内容都非常緊湊,可以(在加密後)将它傳送到别的資料中心,或者亞馬遜S3中。RDB可以最大化Redis的性能:父程序在儲存RDB檔案時唯一要做的就是fork出一個子程序,然後這個子程序就會處理接下來的所有儲存工作,父程序無須執行任何磁盤I/O操作。RDB在恢複大資料集時的速度比AOF的恢複速度要快。
  • **缺點:**如果你需要盡量避免在伺服器故障時丢失資料,那麼RDB不适合你。雖然Redis允許你設定不同的儲存點(save point)來控制儲存RDB檔案的頻率,但是,因為RDB檔案需要儲存整個資料集的狀态,是以它并不是一個輕松的操作。是以你可能會至少5分鐘才儲存一次RDB檔案。在這種情況下,一旦發生故障停機,你就可能會丢失好幾分鐘的資料。每次儲存RDB的時候,Redis都要fork()出一個子程序,并由子程序來進行實際的持久化工作。在資料集比較龐大時,fork()可能會非常耗時,造成伺服器在某某毫秒内停止處理用戶端;如果資料集非常巨大,并且CPU時間非常緊張的話,那麼這種停止時間甚至可能會長達整整一秒。

繼續閱讀