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