1. 程式人生 > >細說Redis(二)之 Redis的持久化

細說Redis(二)之 Redis的持久化

原文: 細說Redis(二)之 Redis的持久化

前言

    在上一篇文章【細說Redis(一)之 Redis的資料結構與應用場景】中,主要介紹了Reids的資料結構。

    對於redis的執行命令,這裡不做介紹,因為網上搜索一堆,無必要再做介紹。

AOF&RDB

    Redis的有兩種持久化,分別是AOF、RDB。

    AOF是檔案增量儲存。RDB是檔案快照。AOF是儲存的是redis的每個步驟增刪改的命令。

區別

Snipaste_2018-10-23_13-42-33

 

    在Redis內部機制來說,RDB模式首先產生一個子程序,呼叫fork()。然後用子執行緒寫到一個臨時的RDB檔案,最後把這個臨時的RDB檔案替換正在執行的RDB檔案。

    AOF模式是所有增改寫的命令都追加到檔案的末尾,這樣的好處是你恢復資料方式多樣。例如有一種黑科技,有人不小心flush掉一個db的資料了,可以把aof檔案複製出來,並且把相應的flush命令去掉,重啟redis並且更新aof檔案就可以還原原來資料了。

 

應用場景

    1.需要使用持久化、丟失資料比較敏感的場景,使用AOF模式。也可使用AOF+RDB的模式。因為AOF是增量的,儲存你最近的操作,每當有資料操作,都會儲存到AOF檔案中。

       可以每秒鐘進行AOF增量設定,這樣你最多丟失一秒鐘的資料。

    2.如果redis持久化要求不那麼嚴格,並且希望redis一最快的速度執行。則可以使用RDB模式即可。因為RDB是可是設定“xxx秒後最少n個key有變動,進行儲存”。RDB是全量更新的,所以丟失資料的間隔很大。

 

可以關注本人的公眾號,多年經驗的原創文章共享給大家。