當前位置:編程學習大全網 - 源碼下載 - Redis的持久化機制 (RDB&AOF&混合模式)

Redis的持久化機制 (RDB&AOF&混合模式)

RDB(Redis DataBase,快照方式) 是將某壹個時刻的內存數據,以二進制的方式寫入磁盤。 AOF(Append Only File,文件追加方式) 是指將所有的操作命令,以文本的形式追加到文件中。

RDB

RDB 默認的保存文件為 dump.rdb,優點是以二進制存儲的,因此 占用的空間更小 、數據存儲更緊湊,並且與 AOF 相比,RDB 具備 更快的重啟恢復能力

AOF

AOF 默認的保存文件為 appendonly.aof,它的優點是存儲頻率更高,因此 丟失數據的風險就越低 ,並且 AOF 並不是以二進制存儲的,所以它的存儲信息更易懂。缺點是 占用空間大 重啟之後的數據恢復速度比較慢

混合

在 Redis 4.0 就推出了混合持久化的功能。Redis 混合持久化的存儲模式是, 開始的數據以 RDB 的格式進行存儲 ,因此只會占用少量的空間, 並且之後的命令會以 AOF 的方式進行數據追加 ,這樣就可以減低數據丟失的風險,同時可以提高數據恢復的速度。

Fork

Redis會單獨創建(fork)壹個子進程來進行持久化,會先將數據寫入到壹個臨時文件中,待持久化過程都結束了,再用這個臨時文件替換上次持久化好的文件。Fork的作用是復制壹個與當前進程壹樣的進程。新進程的所有數據(變量、環境變量、程序計數器等)數值都和原進程壹致,但是是壹個全新的進程,並作為原進程的子進程。

AOF采用文件追加方式,文件會越來越大為避免出現此種情況,新增了重寫機制,當AOF文件的大小超過所設定的閾值時( 默認值 64M ),Redis就會啟動AOF文件的內容壓縮,只保留可以恢復數據的最小指令集。Redis 會fork出壹條新進程來將 文件重寫Rewrite (也是先寫臨時文件最後再rename),遍歷新進程的內存中數據,每條記錄有壹條的set語句。重寫aof文件的操作,並沒有讀取舊的aof文件, 而是將整個內存中的數據庫內容用命令的方式重寫了壹個新的aof文件,這點和快照有點類似。

  • 上一篇:我想在谷歌內核瀏覽器裏讓壹個div寬度為100px 在火狐內核瀏覽器設置寬度為50px 這樣可以做到麽
  • 下一篇:借東西的借條三篇
  • copyright 2024編程學習大全網