Azure 高階版 Redis 如何持久化

2021-07-14 07:58:09 字數 1208 閱讀 2636

為了保證redis cache資料安全,同時在伺服器故障時,能夠在重啟後進行資料恢復。redis 提供了兩種持久化方案 rdb和aof。

rdb

rdb持久化,快照是預設的持久化方式。這種方式是就是將記憶體中資料以快照的方式寫入到二進位制檔案中,預設的檔名為dump.rdb。可以通過配置設定自動做快照持久化的方式。我們可以配置redis在n秒內如果超過m個key被修改就自動做快照

rdb持久化過程:

redis啟用子執行緒fork主線程進行持久化,不影響父執行緒的i/o

父程序繼續處理client請求,子程序負責將記憶體內容寫入到臨時檔案。由於os的寫時複製機制(copy on write)父子程序會共享相同的物理頁面,當父程序處理寫請求時os會為父程序要修改的頁面建立副本,而不是寫共享的頁面。所以子程序的位址空間內的資料是fork時刻整個資料庫的乙個快照。

當子程序將快照寫入臨時檔案完畢後,用臨時檔案替換原來的快照檔案,然後子程序退出(fork乙個程序入內在也被複製了,即記憶體會是原來的兩倍)。

aof

aof持久化過程:

redis啟用子執行緒fork主線程進行持久化,不影響父執行緒的i/o

子程序根據記憶體中的資料庫快照,往臨時檔案中寫入重建資料庫狀態的命令

父程序繼續處理client請求,除了把寫命令寫入到原來的aof檔案中。同時把收到的寫命令快取起來。這樣就能保證如果子程序重寫失敗的話並不會出問題。

當子程序把快照內容寫入已命令方式寫到臨時檔案中後,子程序發訊號通知父程序。然後父程序把快取的寫命令也寫入到臨時檔案。

現在父程序可以使用臨時檔案替換老的aof檔案,並重命名,後面收到的寫命令也開始往新的aof檔案中追加。

azure redis 啟用持久化

set

-azurermrediscache

-resourcegroupname kevingroup -name kevinredis01 -redisconfiguration @

azure redis 停用持久化
set

-azurermrediscache

-name

$cachename

-resourcegroupname

$resourcegroupname

-redisconfiguration @

相關文件

Redis 學習高階版

名字快取雪崩 快取穿透 快取擊穿 原因大面試快取失效 快取和資料庫都沒資料 快取沒資料,資料庫有資料 解決辦法 每個key失效時間加上隨機值 1.引數校驗 2.key對應value null 1.永久快取 2.分布式鎖來解決 保證分布式鎖要以下原則 1.互斥性。在任意時刻,只有乙個客戶端持有鎖。2....

azure 神經網路 如何保護您的Azure網路

azure 神經網路 像azure這樣的雲服務直接提供了許多安全功能,尤其是當您使用它們的平台服務時。但是虛擬基礎架構非常類似於物理基礎架構,將虛擬機器與軟體定義的虛擬網路相連。因此,他們需要與您自己的資料中心和您自己的應用程式基礎結構相同的安全性和網路管理工具。兩項服務是保護和管理azure託管網...

Redis高階高階(二)

一 訊息通知 在一些 上,經常會有一些發布 訂閱或者郵件訂閱的功能,尤其一些部落格上。其實這種問題很常見,當頁面需要進行如傳送郵件 複雜的計算時會阻塞頁面的渲染。為了避免使用者等待太久,應該使用其他程序單獨完成此類操作,這裡郵件訂閱可以用任務佇列來實現,具體來說,當需要傳送郵件時,將其存入佇列中,另...