Kubernetes - Configmap熱更新原理
阿新 • • 發佈:2020-08-29
RDB
Redis DataBase
Redis 會單獨建立fork一個子程序來進行持久化
- Fork:複製一個與當前程序一樣的程序(類似python的os.fork),新程序的所有資料(變數,環境變數,程式計數器等)和原程序一致,但是是一個全新的程序,並作為原程序的子程序
- 會將資料寫入到一個臨時檔案中,待持久化過程結束,再使用這個臨時檔案替換上次持久化好的檔案
- 整個過程中。主程序不進行任何IO操作,確保了極高的效能
- 如果需要的大規模進行資料的恢復,且對於資料恢復的完整性不是非常敏感,RDB方式比AOF方式更加的高效
- RDB的缺點是最後一次持久化後的資料可能丟失
- 在指定的時間間隔內將記憶體中的資料集
- Snapshot 快照 ,恢復時就是將快照檔案直接讀取到記憶體中
- RDB 儲存的是dump.rdb檔案
- flushall:清空記憶體,快讀寫入快照,會替換上次的持久化的檔案
恢復快照
- 將 備份檔案dump.rdb 移動到redis安裝目錄或者配置檔案設定的目錄,啟動服務即可,自動讀取
- Config get dir 獲取配置的目錄
優點
- 適合大規模的資料恢復
- 對資料性的完整性和一致性要求不高
缺點
- 意外down掉的話,就會丟失最後一次快照後的修改
- Fork 記憶體資料被克隆一份,2倍的膨脹性
Append Only File
以日誌的方式 記錄每個寫操作
- 將Redis所有寫指令記錄下來
- 只許追加檔案,不許改寫檔案
- redis啟動之初會讀取該檔案重新構建資料
redis重啟的話就根據日誌檔案的內容將寫指令從前到後執行一次以完成資料的恢復工作