国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【征服redis7】談?wù)凴edis的RDB持久化方式

這篇具有很好參考價值的文章主要介紹了【征服redis7】談?wù)凴edis的RDB持久化方式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

從現(xiàn)在開始,我們來探討redis的一個非常重要的問題——集群,要討論集群,我們需要先理解redis持久化數(shù)據(jù)的方法,因為集群本質(zhì)上就是將一個集群的數(shù)據(jù)同步到其他機器上。

Redis 6的持久化機制主要有兩種:RDB(Redis DataBase)和AOF(Append Only File)。前者效果好,但是代價高,使用頻率低,后者則完全相反。本文將詳細(xì)介紹這兩種持久化方式的工作原理和配置要點。

目錄

1. RDB持久化原理

1.1 基本原理

1.2 RDB的優(yōu)點和缺點

2.持久化的5個步驟

3.RDB持久化實戰(zhàn)


1. RDB持久化原理

1.1 基本原理

RDB持久化是將當(dāng)前進程的數(shù)據(jù)生成快照保存到磁盤的過程。它可以通過手動觸發(fā)或自動觸發(fā)兩種方式來執(zhí)行。

手動觸發(fā)RDB持久化可以使用save命令或bgsave命令。save命令會阻塞Redis服務(wù)器直到RDB過程完成,而bgsave命令則會創(chuàng)建一個子進程來執(zhí)行持久化操作,主進程可以繼續(xù)處理其他請求。

自動觸發(fā)RDB持久化可以在配置文件中設(shè)置save指令,指定在一定時間間隔內(nèi)有一定數(shù)量的修改操作時自動觸發(fā)bgsave命令。
三種主要的觸發(fā)機制:

1.Save命令:Save命令是手動觸發(fā)RDB持久化的機制。當(dāng)執(zhí)行Save命令時,Redis會阻塞主線程,創(chuàng)建一個子進程,將數(shù)據(jù)快照保存到磁盤上的RDB文件中。在持久化完成之前,Redis的主線程將無法處理其他請求。

【征服redis7】談?wù)凴edis的RDB持久化方式,精通redis,一個項目征服Java,redis,數(shù)據(jù)庫,緩存2.BGSAVE命令:BGSAVE命令是異步觸發(fā)RDB持久化的機制。當(dāng)執(zhí)行BGSAVE命令時,Redis會創(chuàng)建一個子進程,在子進程中進行數(shù)據(jù)快照的生成和保存。與Save命令不同的是,BGSAVE命令不會完全阻塞主線程,可以繼續(xù)處理其他請求。

【征服redis7】談?wù)凴edis的RDB持久化方式,精通redis,一個項目征服Java,redis,數(shù)據(jù)庫,緩存

3. 自動觸發(fā):Redis 6.0引入了自動觸發(fā)RDB持久化的機制。可以通過配置文件中的save選項來設(shè)置自動觸發(fā)的條件。例如,設(shè)置save 900 1表示在900秒(15分鐘)內(nèi),如果至少有1個鍵發(fā)生變化,則自動觸發(fā)RDB持久化操作。這樣可以根據(jù)實際需求來靈活地控制RDB持久化的頻率。

這些觸發(fā)機制可以根據(jù)需求和場景選擇合適的方式來進行RDB持久化,以保證數(shù)據(jù)的持久性和恢復(fù)能力。再次對之前的回答失誤表示歉意,希望這次回答能夠滿足你的需求。如果還有其他問題,請隨時提問。
RDB持久化的優(yōu)點包括快速恢復(fù)數(shù)據(jù)、壓縮存儲和加載速度快。缺點是實時性較差,無法做到秒級持久化,并且執(zhí)行bgsave命令會進行fork子進程,頻繁執(zhí)行開銷較大。

RDB持久化的配置項包括:

  • dbfilename:RDB文件在磁盤上的名稱。
  • dir:RDB文件的存儲路徑。
  • stop-writes-on-bgsave-error:如果持久化過程出錯,主進程是否停止寫入操作。
  • rdbcompression:是否對RDB文件進行壓縮。
  • rdbchecksum:在RDB文件末尾添加冗余校驗編碼。

1.2 RDB的優(yōu)點和缺點

RDB 它會周期性地將 Redis 內(nèi)存中的數(shù)據(jù)快照寫入到硬盤中,并生成對應(yīng)的 RDB 文件。

優(yōu)點是:

  1. 數(shù)據(jù)恢復(fù)速度快:由于 RDB 文件采用二進制格式存儲,文件體積較小,恢復(fù)速度非???。
  2. 對性能影響?。号c AOF 持久化方式相比,RDB 持久化方式對 Redis 的性能影響要小很多,因為 RDB 僅在指定的時間間隔內(nèi)執(zhí)行一次快照存儲操作。
  3. 文件體積?。河捎?RDB 文件采用二進制格式存儲,文件體積較小,可節(jié)省存儲空間。
  4. 可以單獨備份:RDB 文件可以單獨備份,方便進行數(shù)據(jù)遷移和備份。

缺點是:

  1. 可能會丟失一定量的數(shù)據(jù):由于 RDB 持久化方式是周期性地生成快照文件,如果在兩次快照文件之間 Redis 發(fā)生宕機,就會丟失這段時間內(nèi)的數(shù)據(jù)。
  2. 數(shù)據(jù)一致性較低:由于 RDB 持久化方式并不是實時同步,而是周期性快照存儲,因此在宕機時可能會丟失一部分?jǐn)?shù)據(jù),數(shù)據(jù)一致性較 AOF 持久化方式要低。
  3. 不支持實時備份:由于 RDB 持久化方式是周期性快照存儲,因此不支持實時備份。

整體而言RDB 持久化方式可以提供快速的數(shù)據(jù)恢復(fù)能力,對 Redis 的性能影響比較小,同時也可以節(jié)省存儲空間。但是,它也存在丟失一定量數(shù)據(jù)和數(shù)據(jù)一致性較低的問題,需要根據(jù)實際情況進行權(quán)衡和選擇。后面我們講解另一種持久化方式AOF。我們可以對照著學(xué)習(xí)一下。
?

2.持久化的5個步驟

RDB持久化方式一共可以分為5步,第五步其實就是持久化恢復(fù),也可以不算。

【征服redis7】談?wù)凴edis的RDB持久化方式,精通redis,一個項目征服Java,redis,數(shù)據(jù)庫,緩存

具體來說:

1. 觸發(fā)條件: 可以通過配置文件中的save參數(shù)來設(shè)置RDB持久化的觸發(fā)條件。當(dāng)滿足設(shè)定的觸發(fā)條件時,Redis會執(zhí)行RDB持久化操作。

2. 快照生成:當(dāng)觸發(fā)條件滿足時,Redis會調(diào)用fork函數(shù)創(chuàng)建一個子進程。父進程繼續(xù)處理客戶端的請求,而子進程負(fù)責(zé)將數(shù)據(jù)寫入RDB文件。

3. 寫入過程:子進程會遍歷Redis服務(wù)器中的所有數(shù)據(jù)庫,將每個數(shù)據(jù)庫的鍵值對寫入到RDB文件中。寫入過程中,子進程會將數(shù)據(jù)轉(zhuǎn)換為二進制格式,并按照一定的規(guī)則進行壓縮。

4. 寫入完成:當(dāng)子進程完成RDB文件的寫入后,它會用新生成的RDB文件覆蓋原來的RDB文件。這個過程是原子的,可以保證RDB文件的完整性。

5. 恢復(fù):當(dāng)Redis服務(wù)器重新啟動時,它會檢查是否存在RDB文件。如果存在,Redis會加載RDB文件,并將其中的數(shù)據(jù)恢復(fù)到內(nèi)存中,從而完成數(shù)據(jù)的持久化恢復(fù)。

比較坑的是 RDB持久化是一個阻塞操作,即在進行RDB持久化期間,Redis服務(wù)器將暫停響應(yīng)客戶端的請求。這是因為RDB持久化是通過fork子進程來完成的,而fork操作會復(fù)制整個父進程的內(nèi)存空間,可能會耗費大量的CPU和內(nèi)存資源。

此外,RDB持久化還有一些配置選項可以進行調(diào)整,例如可以設(shè)置RDB文件的路徑和名稱、是否壓縮RDB文件、觸發(fā)條件的設(shè)置等。這些選項可以通過Redis的配置文件redis.conf來進行配置。
?

3.RDB持久化實戰(zhàn)

rdb持久化問題,本來以為非常復(fù)雜,沒想到非常簡單,當(dāng)我們關(guān)閉redis時,就會使用rdb方式將我們的緩存文件保存下來,這樣下次啟動了就可以恢復(fù)全部數(shù)據(jù)。

接下來我們演示一下rdb如何使用。

首先,我們將redis工作區(qū)下的.rdb的文件先刪掉,然后重啟redis服務(wù):

【征服redis7】談?wù)凴edis的RDB持久化方式,精通redis,一個項目征服Java,redis,數(shù)據(jù)庫,緩存

可以看到此時是沒有數(shù)據(jù)的,然后我們輸入幾個值:

【征服redis7】談?wù)凴edis的RDB持久化方式,精通redis,一個項目征服Java,redis,數(shù)據(jù)庫,緩存

然后我們將redis-server關(guān)閉,(可以使用kill命令)。

之后我們重啟redis-server,此時再用redis-cli客戶端登陸,可以看到此時keys是有我們存儲的信息。

【征服redis7】談?wù)凴edis的RDB持久化方式,精通redis,一個項目征服Java,redis,數(shù)據(jù)庫,緩存

如果我們將redis工作區(qū)下的dump.rdb文件(默認(rèn))刪除 ,然后重啟redis-server,此時就會發(fā)現(xiàn)redis里什么都沒有了。

【征服redis7】談?wù)凴edis的RDB持久化方式,精通redis,一個項目征服Java,redis,數(shù)據(jù)庫,緩存

由此,我們也可以看到redis的關(guān)閉的時候確實使用rdb來將數(shù)據(jù)保存到本地。而啟動的時候會先使用rdb中的信息來恢復(fù)原始數(shù)據(jù)。

文章參考:rdb持久化文章來源地址http://www.zghlxwxcb.cn/news/detail-800579.html

到了這里,關(guān)于【征服redis7】談?wù)凴edis的RDB持久化方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【Redis7學(xué)習(xí)日記】—— Redis持久化

    【Redis7學(xué)習(xí)日記】—— Redis持久化

    Redis 的持久化是它的一大特性,可以將內(nèi)存中的數(shù)據(jù)寫入到硬盤中 主要分為 RDB 和 AOF 兩種,接下來我們將展開敘述 RDB持久化方式能夠在指定的時間間隔能對你的數(shù)據(jù)進行 快照 存儲 AOF持久化方式記錄每次對服務(wù)器寫的操作,當(dāng)服務(wù)器重啟的時候會重新執(zhí)行這些命令來恢復(fù)原始

    2023年04月09日
    瀏覽(24)
  • 【Redis】—— Redis的RDB持久化機制

    【Redis】—— Redis的RDB持久化機制

    ?????????????????????????????????????????????????????????????????? ?? 【 R e d i s 】—— R e d i s 的 R D B 持久化機制 color{#FF1493}{【Redis】 —— Redis的RDB持久化機制} 【 R e d i s 】 —— R e d i s 的 R D B 持久化機制 ?? ????????? ?? 仰望天空

    2024年02月13日
    瀏覽(23)
  • redis持久化之RDB

    redis持久化之RDB

    RDB(Redis DataBase):RDB 持久性以指定的時間間隔執(zhí)行數(shù)據(jù)集的時間點快照。 說人話:實現(xiàn)類似照片記錄效果的方式,把某一時刻的數(shù)據(jù)和狀態(tài)以文件的形式寫到磁盤上,也就是快照,恢復(fù)時再將硬盤快照文件直接讀回到內(nèi)存里。 這樣一來,即使故障宕機,快照文件也不會丟

    2024年02月04日
    瀏覽(20)
  • Redis兩種持久化方案RDB持久化和AOF持久化

    Redis兩種持久化方案RDB持久化和AOF持久化

    Redis持久化 Redis有兩種持久化方案: RDB持久化 AOF持久化 1.1.RDB持久化 RDB全稱Redis Database Backup file(Redis數(shù)據(jù)備份文件),也被叫做Redis數(shù)據(jù)快照。簡單來說就是把內(nèi)存中的所有數(shù)據(jù)都記錄到磁盤中。當(dāng)Redis實例故障重啟后,從磁盤讀取快照文件,恢復(fù)數(shù)據(jù)。快照文件稱為RDB文件

    2024年02月14日
    瀏覽(28)
  • 全面解析 Redis 持久化:RDB、AOF與混合持久化

    前言: 每次你在游戲中看到玩家排行榜,或者在音樂應(yīng)用中瀏覽熱門歌單,有沒有想過這個排行榜是如何做到實時更新的?當(dāng)然,依靠 Redis 即可做到。 在技術(shù)領(lǐng)域,我們經(jīng)常聽到 「鍵值存儲」 這個詞。但在 Redis 的世界里,這只是冰山一角。Redis 的對象,不僅僅是簡單的數(shù)據(jù)

    2024年03月10日
    瀏覽(33)
  • redis 持久化 RDB + AOF

    redis 持久化 RDB + AOF

    RDB(Redis DataBase)和AOF(Append Only File) RDB,簡而言之,就是在不同的時間點,將redis存儲的數(shù)據(jù)生成快照并存儲到磁盤等介質(zhì)上 AOF,那就是將redis執(zhí)行過的所有寫指令記錄下來,在下次redis重新啟動時,只要把這些寫指令從前到后再重復(fù)執(zhí)行一遍,就可以實現(xiàn)數(shù)據(jù)恢復(fù)了。

    2024年02月03日
    瀏覽(26)
  • 【Redis】Redis持久化機制RDB與AOF

    【Redis】Redis持久化機制RDB與AOF

    目錄 一、RDB 1、概念 2、RDB文件保存 3、執(zhí)行RDB 4、觸發(fā)RDB 5、fork原理 6、RDB的缺點 二、AOF 1、概念 2、開啟AOF 3、觸發(fā)AOF 4、觸發(fā)重寫AOF 三、區(qū)別 RDB全稱為Redis Database Backup File(Redis數(shù)據(jù)備份文件),也叫做Redis數(shù)據(jù)快照。簡單的來說就是把某一時刻Redis內(nèi)存里的數(shù)據(jù)都記錄到磁

    2024年02月08日
    瀏覽(40)
  • 【Redis】Redis持久化之RDB詳解(Redis專欄啟動)

    【Redis】Redis持久化之RDB詳解(Redis專欄啟動)

    ??作者簡介:小明java問道之路, 2022年度博客之星全國TOP3 ,專注于后端、中間件、計算機底層、架構(gòu)設(shè)計演進與穩(wěn)定性建設(shè)優(yōu)化。文章內(nèi)容兼具廣度深度、大廠技術(shù)方案,對待技術(shù)喜歡推理加驗證,就職于知名金融公司后端高級工程師。 ? ? ? ?? ?? 熱衷分享,喜歡原創(chuàng)

    2023年04月09日
    瀏覽(31)
  • Redis_持久化(AOF、RDB)

    Redis_持久化(AOF、RDB)

    目前,redis的持久化主要應(yīng)用AOF(Append Only File)和RDF兩大機制,AOF以日志的形式來記錄每個寫操作(增量保存),將redis執(zhí)行過的所有指令全部安全記錄下來(讀操作不記錄)。只許追加文件,但不可以改寫文件,redis啟動之初,會讀取該文件,重新構(gòu)建數(shù)據(jù)。 AOF默認(rèn)不開啟

    2024年02月13日
    瀏覽(23)
  • Redis持久化(RDB和AOF)

    目錄 方式一:RDB 方式二:AOF AOF重寫可能出現(xiàn)的問題及解決方案 方式三:RDB-AOF混合持久化 Redis持久化 :Redis是基于內(nèi)存數(shù)據(jù)庫,宕機后和數(shù)據(jù)會消失,當(dāng)Redis用作DB 時,DB數(shù)據(jù)要完整,所以一定要有一個完整的數(shù)據(jù)源文件,在系統(tǒng)啟動時,從這個完整的數(shù)據(jù)源中將數(shù)據(jù)load到

    2024年02月16日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包