RDB(Redis DataBase)
在指定的時間間隔內(nèi)將內(nèi)存中的數(shù)據(jù)集寫入磁盤,也就是快照(Snapshot),數(shù)據(jù)恢復是將快照文件直接讀到內(nèi)存中。
redis會單獨創(chuàng)建(fork)一個子進程來進行持久化,會先將數(shù)據(jù)寫入一個到一個臨時文件(dump.rdb)中,待持久化過程結束后,再用本次的臨時文件替換上次持久化后的文件。
fork函數(shù)的作用是復制一個與當前進程一樣的進程,新進程的所有數(shù)據(jù)數(shù)值都和原進程一致,但是一個全新的進程,并作為原進程的子進程。redis服務器在處理bgsave采用子線程進行IO寫入,而主進程仍然可以接收其他請求,但創(chuàng)建子進程是同步阻塞的,此時不接受其他請求。