在指定的時間內將內存中的數據集快照寫入磁盤,也就是Snapshot快照,它恢復時是將快照文件直接讀到內存中。
Redis會單首創建(fork)一個子進程來進行持久化,會先將數據寫入到一個臨時文件中,待持久化過程都結束,再用這個臨時文件替換上次持久化的文件,整個過程當中,主進程時不進行任何IO操做的,這就是確保了極高的性能,若是須要進行大規模數據的恢復,且對於數據的完整性不是很是敏感,那RDB方式比AOF方式更加高效,RDB的缺點是最後一次持久化的數據可能丟失。redis
Fork的做用是複製一個與當前進程同樣的進程。新進程的全部數據(變量、環境變量、程序計數器等)數值都與原進程一致,可是是一個全新的進程,並做爲原進程的子進程。性能
如何觸發RDB快照spa
save 900 1 // 900秒內有1次改動,則持久化一次 save 300 10 // 300秒內有10次改動,則持久化一次 save 60 10000 // 60秒內有10000次改動,則持久化一次
以上三個任意知足一個條件便可code
save 或bgsave命令
執行flushall命令也會產生rdb文件,不過是空的,無心義blog