redis RDB持久化

RDB文件的創(chuàng)建與載入

有兩個命令可以用于生成RDB文件,一個是SAVE,另一個是BGSAVE。
SAVE命令會阻塞redis服務(wù)器進(jìn)程,直到RDB文件創(chuàng)建完畢為止。
BGSAVE會派生出一個子進(jìn)程,然后由子進(jìn)程負(fù)責(zé)創(chuàng)建RDB文件,服務(wù)器進(jìn)程繼續(xù)處理命令請求。

自動間隔性保存

用戶可以在指定配置文件或者傳入啟動參數(shù)的方式設(shè)置save選項,如果沒有主動設(shè)置,則默認(rèn)為:
save 900 1 -- 900秒內(nèi)對數(shù)據(jù)庫有一次改動。
save 300 10 -- 300秒內(nèi)對數(shù)據(jù)庫有10次改動。
save 60 10000 -- 60秒內(nèi)對數(shù)據(jù)有有10000次改動。

dirty計數(shù)器和lastsave屬性

dirty計數(shù)器記錄距離上一次成功執(zhí)行SAVE命令或者BGSAVE命令之后,服務(wù)器對數(shù)據(jù)庫狀態(tài)進(jìn)行了多次修改(寫入、刪除、更新等)
lastsave屬性是一個UNIX時間戳,記錄了服務(wù)器上一次成功執(zhí)行SAVE命令或者BGSAVE命令的時間。

總結(jié):

RDB文件用于保存和還原redis服務(wù)器所有數(shù)據(jù)庫中的所有鍵值對數(shù)據(jù)。
SAVE命令由服務(wù)器進(jìn)程直接執(zhí)行保存操作,所以該命令會阻塞服務(wù)器。
BGSAVE由子進(jìn)程執(zhí)行保存操作,所以該命令不會阻塞服務(wù)器。
服務(wù)器狀態(tài)中會保存所有用save選項設(shè)置的保存條件,當(dāng)任意一個保存條件被滿足時,服務(wù)器會自動執(zhí)行BGSAVE命令。
RDB文件是一個經(jīng)過壓縮的二進(jìn)制文件,由多個部分組成。
對于不同類型的鍵值對,RDB會使用不同的方式來保存它們。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 在上一篇文章中,介紹了Redis內(nèi)存模型,從這篇文章開始,將依次介紹Redis高可用相關(guān)的知識——持久化、復(fù)...
    Java架構(gòu)閱讀 2,503評論 3 21
  • 企業(yè)級redis集群架構(gòu)的特點(diǎn) 海量數(shù)據(jù) 高并發(fā) 高可用 要達(dá)到高可用,持久化是不可減少的,持久化主要是做災(zāi)難恢復(fù)...
    lucode閱讀 2,283評論 0 7
  • RDB持久化 Redis是內(nèi)存數(shù)據(jù)庫,數(shù)據(jù)庫狀態(tài)都在內(nèi)存里邊,需要RDB持久化功能將內(nèi)存中的數(shù)據(jù)庫狀態(tài)保存到磁盤里...
    涵仔睡覺閱讀 368評論 0 1
  • 簡介 Redis 持久化 RDB、AOF 為防止數(shù)據(jù)丟失,需要將 Redis 中的數(shù)據(jù)從內(nèi)存中 dump 到磁盤,...
    翼徳閱讀 473評論 0 0
  • 本文翻譯自官方文檔http://redis.io/topics/persistence 。 Redis 持久化 R...
    六尺帳篷閱讀 1,694評論 1 15

友情鏈接更多精彩內(nèi)容