2023-02-10
一、redis提供了2個不同形式的持久化方式
1、RDB(Redis DataBase)
2、AOF(Append Of File)
二、RDB的定義
RDB是在指定的時間間隔內將記憶體中的資料集快照寫入磁盤,即Snapshot快照,它恢復時是將快照檔案直接讀到記憶體里,
三、備份執行的程序
redis會單獨創建(fork)一個子行程來進行持久化,會將資料寫入到一個臨時檔案中,待持久化程序都結束了,再用這個臨時檔案替換上次持久化好的檔案,RDB方式要比AOF方式更加的高效,
RDB的缺點最后一次持久化后的資料可能丟失,
四、Fork
1、Fork的作用
它的作用是復制一個與當前行程一樣的行程,是作為原行程的子行程,
2、說明
(1)在linux程式中,fork()會產生一個和父行程完全相同的子行程,但子行程在此后會被exe系統呼叫,處于效率考慮,Linux中引入了“寫時復制技術”,
(2)一般情況父行程和子行程會共用同一段物理記憶體,只有行程空間的各段的內容要發生變化時,才會將父行程的內容復制一份給子行程,
五、redis中RDB快照觸發的時機
1、在redis資料庫中執行shutdown會觸發RDB快照
2、在redis資料庫中執行bgsave會觸發RDB快照
3、在redis.conf組態檔中設定例如“save 60 10”會觸發RDB快照
六、redis持久化之AOF
1、AOF(Append Only File)的含義
它是以日志的形式記錄每個寫操作(增量保存),將redis執行過的所有寫指令記錄下來(讀操作不記錄),只許9追加檔案但不可以改寫檔案,redis啟動之扯訓讀取檔案重新構建資料,簡而言之,redis重啟的話就根據日志檔案的內容將寫指令從前到后執行一次以完成資料的恢復作業,
2、AOF持久化流程
(1)客戶端的請求寫命令會被append追加到AOF緩沖區內
(2)AOF緩沖區根據AOF持久化策略將操作sync同步到磁盤的AOF檔案中
(3)AOF檔案大小超過重寫策略或手動重寫時,會對AOF檔案rewrite重寫,壓縮AOF檔案容量
(4)Redis服務重啟時,會重新load加載AOF檔案中的寫操作,達到資料恢復的目的
3、說明
當AOF和RDB同時開啟時,redis聽AOF的,因為RDB最后一次快取資料可能保存不完整,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/543587.html
標籤:其它
上一篇:一文詳解數倉GaussDB(DWS) 函式出參帶出方式
下一篇:學習筆記——redis集群(定義、集群連接、查看集群、節點分配方式、插槽、集群中錄入值、查詢集群中的值、故障恢復)
