redis aof文件淺析
redis中的數(shù)據(jù)持久化有兩種方式:RDB持久化和AOF持久化。RDB相對于AOF來說是一個粗粒度的備份,即RDB可能是一天備份一次,而AOF可能是每秒一次甚至每次寫操作進行一次備份。
redis中的aof(append only file)文件的作用就相當于mysql中的binlog,用于記錄寫操作日志。當redis服務(wù)器異常宕機,可以使用該文件對數(shù)據(jù)進行恢復(fù)。進行數(shù)據(jù)恢復(fù)時,redis服務(wù)器端會創(chuàng)建一個 fake client(假冒客戶端),即通過fake client來模擬redis客戶端,該fake client讀取aof文件并執(zhí)行其中的redis command,通過這種方式來模擬redis客戶端對redis服務(wù)器的操作(增刪改),從而達到恢復(fù)數(shù)據(jù)的目的。
另外redis是k-v數(shù)據(jù)庫,數(shù)據(jù)存儲在內(nèi)存,當然也會定時持久化。在redis服務(wù)關(guān)閉時,內(nèi)存中原先的數(shù)據(jù)就會丟失,所以在redis每次重新啟動時,需要將持久化的數(shù)據(jù)恢復(fù)到內(nèi)存中。持久化的數(shù)據(jù)就是rdb和aof文件,具體采用的方式是根據(jù)redis的配置文件而定。