Redis 持久化之RDB操作


Redis是內存數據庫,如果不將內存中的數據庫狀態保存到磁盤,那么一旦服務器進程退出,服務器中的數據庫狀態也會消逝,所以Redis提供了持久化功能!

在主從復制中,rdb就是備用的,存在從機上邊,不占用主機資源。

RDB:

  • 在指定的時間間隔內將內存中的數據集快照寫入磁盤,也就是行話講的Snapshot快照,它恢復時是將快照文件直接讀取到內存里。
  • Redis會單獨創建fork一個子進程來進行持久化,會先將數據寫入到一個臨時文件中,待持久化都結束了,再用這個臨時文件替換上次持久化好的文件,整個過程中,主進程是不進行任何IO操作的。這就確保了級高的性能。如果需要進行大規模數據的恢復,且對於數據恢復的完整性不是非常敏感,那RDB方式就要比AOF方式更加的高效。
  • RDB的缺點:是最后一次持久化的數據可能丟失。
  • 我們在生產環境會將dump.rdb這個文件進行備份。

redis默認的就是RDB持久化,一般情況下不需要修改這個配置。

rdb保存的文件就是dump.rdb文件

 

 

 在 redis.windows.conf (windows版本)配置文件中也可以查看配置:

 

 

 我們可以自己修改配置

 

 

 觸發機制:

①save的規則滿足的情況下,會自動觸發rdb規則

②執行flushall命令,也會觸發rdb規則

③退出redis時,也會產生rdb文件!

備份就自動生成一個dump.rdb文件。

如何恢復rdb文件:

① 只需要將rdb文件放在我們的redis啟動目錄就可以,redis啟動的時候會自動檢查dump.rdb恢復其中的數據!

② 查看需要存在的位置:

127.0.0.1:6379> config get dir
1) "dir"
2) "D:\\Program Files\\Redis"
127.0.0.1:6379>  

 

 

 rdb幾乎它自己默認的配置就夠用了。

優點和缺點:

① 優點:

  • 適合大規模的數據恢復!
  • 對數據的完整性要求不高!

②缺點:

  • 需要一定的時間間隔進程操作!如果redis意外宕機了,這個最后一次修改數據就沒有了!
  • fork進程的時候,會占用一定的內存空間!!


免責聲明!

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



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