Redis持久化之RDB

1、是什麼

在指定的時間內將內存中的數據集快照寫入磁盤,也就是Snapshot快照,它恢復時是將快照文件直接讀到內存中。
Redis會單首創建(fork)一個子進程來進行持久化,會先將數據寫入到一個臨時文件中,待持久化過程都結束,再用這個臨時文件替換上次持久化的文件,整個過程當中,主進程時不進行任何IO操做的,這就是確保了極高的性能,若是須要進行大規模數據的恢復,且對於數據的完整性不是很是敏感,那RDB方式比AOF方式更加高效,RDB的缺點是最後一次持久化的數據可能丟失。redis

2、Fork

Fork的做用是複製一個與當前進程同樣的進程。新進程的全部數據(變量、環境變量、程序計數器等)數值都與原進程一致,可是是一個全新的進程,並做爲原進程的子進程。性能

3、dump.rdb文件

  • 配置
    clipboard.png
    這是個人配置路徑
  • 如何觸發RDB快照spa

    save 900 1 // 900秒內有1次改動,則持久化一次
    save 300 10 // 300秒內有10次改動,則持久化一次
    save 60 10000 // 60秒內有10000次改動,則持久化一次

    以上三個任意知足一個條件便可code

    save 或bgsave命令
    執行flushall命令也會產生rdb文件,不過是空的,無心義blog

4、優點與劣勢

  • 優點
    適合大規模的數據恢復
    對數據完整性和一致性要求不高
  • 劣勢在必定間隔時間作一次備份,因此若是redis意外down的話,就會丟失最後一次快照後的全部修改。Fork的時候,內存中的數據被克隆了一份,大體2倍的膨脹性須要考慮。
相關文章
相關標籤/搜索