redis的持久化機制


一、首先什么是redis的持久化?

答:持久化就是把內存中的數據存放到磁盤中,防止宕機后內存數據丟失。

二、Redis 的持久化機制是什么?各自的優缺點?

1、RDB:是Redis DataBase縮寫快照

RDB是Redis默認的持久化方式。按照指定的時間間隔內將內存的數據以快照的形式保存到硬盤中,對應產生的數據文件為dump.rdb。通過配置文件中的save參數來定義快照的周期。

恢復時,將rdb文件直接讀到內存中,具體做法:將rdb文件放到redis的啟動目錄上,redis會自動檢查dump.rdb文件,恢復數據

 

具體操作:

 

 

 

優點:(1)適合大規模的數據恢復(使用單獨子進程來進行持久化,主進程不會進行任何 IO 操作,保證了 redis 的高性能)

           

缺點:(1)需要一定的時間間隔進行操作,無法做到實時持久化,所以適合對數據完整性不高的持久化操作

   (2)fork子進程的時候,會占用一定的內存空間

2、AOF持久化(即Append Only File持久化),則是將Redis執行的每次寫命令記錄到日志文件中,當重啟Redis會加載appendonly.aof文件來恢復數據。

      默認是不采用AOF的,需要在配置文件中修改

AOF是存放每條寫命令的,所以會不斷的增大,當大到一定程度時,AOF會做rewrite操作,rewrite操作就是基於當時redis的數據重新構造一個小的AOF文件,然后將大的AOF文件刪除。

 

優點:

(1)AOF日志文件適合做災難性的誤刪除緊急恢復,如果某人不小心用flushall命令清空了所有數據,只要這個時候還沒有執行rewrite,那么就可以將日志文件中的flushall刪除,進行恢復。

(2)每進行一次 命令操作就記錄到 aof 文件中一次 保證了數據的安全性和完整性

(3)AOF以append-only的模式寫入,所以沒有任何的磁盤尋址的開銷,寫入性能非常的高。

缺點:AOF 文件比 RDB 文件大,且恢復速度慢

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM