0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Redis持久化機(jī)制介紹

麥辣雞腿堡 ? 來源:程序員庫(kù)森 ? 作者:程序員庫(kù)森 ? 2023-10-09 11:44 ? 次閱讀

Redis持久化機(jī)制?

為了能夠重用Redis數(shù)據(jù),或者防止系統(tǒng)故障,我們需要將Redis中的數(shù)據(jù)寫入到磁盤空間中,即持久化。Redis提供了兩種不同的持久化方法可以將數(shù)據(jù)存儲(chǔ)在磁盤中,一種叫快照RDB,另一種叫只追加文件AOF。

RDB

在指定的時(shí)間間隔內(nèi)將內(nèi)存中的數(shù)據(jù)集快照寫入磁盤(Snapshot),它恢復(fù)時(shí)是將快照文件直接讀到內(nèi)存里。

優(yōu)勢(shì):適合大規(guī)模的數(shù)據(jù)恢復(fù);對(duì)數(shù)據(jù)完整性和一致性要求不高

劣勢(shì):在一定間隔時(shí)間做一次備份,所以如果Redis意外down掉的話,就會(huì)丟失最后一次快照后的所有修改。

AOF

以日志的形式來記錄每個(gè)寫操作,將Redis執(zhí)行過的所有寫指令記錄下來(讀操作不記錄),只許追加文件但不可以改寫文件,Redis啟動(dòng)之初會(huì)讀取該文件重新構(gòu)建數(shù)據(jù),換言之,Redis重啟的話就根據(jù)日志文件的內(nèi)容將寫指令從前到后執(zhí)行一次以完成數(shù)據(jù)的恢復(fù)工作。

AOF采用文件追加方式,文件會(huì)越來越大,為避免出現(xiàn)此種情況,新增了重寫機(jī)制,當(dāng)AOF文件的大小超過所設(shè)定的閾值時(shí),Redis就會(huì)啟動(dòng)AOF文件的內(nèi)容壓縮,只保留可以恢復(fù)數(shù)據(jù)的最小指令集。

優(yōu)勢(shì)

每修改同步:appendfsync always 同步持久化,每次發(fā)生數(shù)據(jù)變更會(huì)被立即記錄到磁盤,性能較差但數(shù)據(jù)完整性比較好。

每秒同步:appendfsync everysec 異步操作,每秒記錄,如果一秒內(nèi)宕機(jī),有數(shù)據(jù)丟失。

不同步:appendfsync no 從不同步。

劣勢(shì)

相同數(shù)據(jù)集的數(shù)據(jù)而言aof文件要遠(yuǎn)大于rdb文件,恢復(fù)速度慢于rdb。

aof運(yùn)行效率要慢于rdb,每秒同步策略效率較好,不同步效率和rdb相同。

如何選擇RDB和AOF

如果是數(shù)據(jù)不那么敏感,且可以從其他地方重新生成補(bǔ)回的,那么可以關(guān)閉持久化。

如果是數(shù)據(jù)比較重要,不想再?gòu)钠渌胤将@取,且可以承受數(shù)分鐘的數(shù)據(jù)丟失,比如緩存等,那么可以只使用RDB。

如果是用做內(nèi)存數(shù)據(jù)庫(kù),要使用Redis的持久化,建議是RDB和AOF都開啟,或者定期執(zhí)行bgsave做快照備份,RDB方式更適合做數(shù)據(jù)的備份,AOF可以保證數(shù)據(jù)的不丟失。

Redis4.0 對(duì)于持久化機(jī)制的優(yōu)化

Redis4.0相對(duì)與3.X版本其中一個(gè)比較大的變化是4.0添加了新的混合持久化方式。

簡(jiǎn)單的說:新的AOF文件前半段是RDB格式的全量數(shù)據(jù)后半段是AOF格式的增量數(shù)據(jù),如下圖:

圖片

優(yōu)勢(shì):混合持久化結(jié)合了RDB持久化 和 AOF 持久化的優(yōu)點(diǎn),
由于絕大部分都是RDB格式,加載速度快,同時(shí)結(jié)合AOF,增量的數(shù)據(jù)以AOF方式保存了,數(shù)據(jù)更少的丟失。

劣勢(shì):兼容性差,一旦開啟了混合持久化,在4.0之前版本都不識(shí)別該aof文件,同時(shí)由于前部分是RDB格式,閱讀性較差。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3025

    瀏覽量

    74056
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    3799

    瀏覽量

    64396
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    375

    瀏覽量

    10878
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Redis堅(jiān)持持久方式概述

    Redis 持久
    發(fā)表于 09-25 17:04

    如何使得redis中的數(shù)據(jù)不再有

    ,原因是redis持久功能導(dǎo)致的,所謂的持久就是redis在系統(tǒng)關(guān)閉的時(shí)候把數(shù)據(jù)存儲(chǔ)到硬盤
    發(fā)表于 11-05 08:50

    Redis持久機(jī)制的實(shí)現(xiàn)原理和使用技巧

    Redis將數(shù)據(jù)存儲(chǔ)在內(nèi)存中,宕機(jī)或重啟都會(huì)使內(nèi)存數(shù)據(jù)全部丟失, Redis持久機(jī)制用來保證數(shù)據(jù)不會(huì)因?yàn)楣收隙鴣G失。
    的頭像 發(fā)表于 09-13 16:42 ?1002次閱讀

    談?wù)?b class='flag-5'>Redis怎樣配置實(shí)現(xiàn)主從復(fù)制?

    之前總結(jié)過redis持久機(jī)制:深度剖析Redis持久
    發(fā)表于 01-31 11:31 ?667次閱讀

    Redis持久化分為兩種:RDB和AOF

    Redis持久,一個(gè)老掉牙的問題,但是面試官就是喜歡問。這也是我們學(xué)Redis必會(huì)的一個(gè)知識(shí)點(diǎn)。
    的頭像 發(fā)表于 02-21 09:22 ?698次閱讀

    Redis持久RDB方式介紹

    Redis持久 Redis是一個(gè)內(nèi)存數(shù)據(jù)庫(kù),為了保證數(shù)據(jù)的持久性,它提供了兩種持久
    的頭像 發(fā)表于 10-09 14:56 ?510次閱讀
    <b class='flag-5'>Redis</b><b class='flag-5'>持久</b><b class='flag-5'>化</b>RDB方式<b class='flag-5'>介紹</b>

    redis持久方式有幾種及配置

    Redis是一種內(nèi)存數(shù)據(jù)庫(kù),為了避免數(shù)據(jù)丟失,需要將數(shù)據(jù)持久到磁盤上。Redis提供了兩種持久
    的頭像 發(fā)表于 12-04 11:09 ?645次閱讀

    redis兩種持久方式的區(qū)別

    Redis是一款高性能、開源的鍵值存儲(chǔ)數(shù)據(jù)庫(kù),它支持多種數(shù)據(jù)結(jié)構(gòu),并且具有高效的內(nèi)存讀寫以及持久功能。Redis持久
    的頭像 發(fā)表于 12-04 11:12 ?525次閱讀

    redis持久方式RDB和AOF的區(qū)別

    Redis 是一個(gè)高性能的鍵值對(duì)數(shù)據(jù)庫(kù),提供了兩種持久方式:RDB 和 AOF。RDB 是將 Redis 的數(shù)據(jù)快照保存到磁盤上,而 AOF 則是將
    的頭像 發(fā)表于 12-04 16:25 ?784次閱讀

    redis持久機(jī)制和如何實(shí)現(xiàn)持久

    Redis是一款高性能的非關(guān)系型數(shù)據(jù)庫(kù),其持久機(jī)制是保證數(shù)據(jù)在重啟后仍能夠保存的關(guān)鍵。Redis提供了兩種方式來實(shí)現(xiàn)
    的頭像 發(fā)表于 12-05 10:02 ?466次閱讀

    redis持久機(jī)制優(yōu)缺點(diǎn)

    Redis是一個(gè)基于內(nèi)存的高性能鍵值存儲(chǔ)系統(tǒng),它提供了多種持久機(jī)制來保證數(shù)據(jù)的可靠性。本文將詳細(xì)介紹R
    的頭像 發(fā)表于 12-05 10:03 ?725次閱讀

    redis里數(shù)據(jù)什么時(shí)候持久

    Redis是一種開源的高性能、非關(guān)系型內(nèi)存數(shù)據(jù)庫(kù),它使用了鍵值對(duì)存儲(chǔ)數(shù)據(jù),并且支持多種數(shù)據(jù)結(jié)構(gòu)。 Redis提供了持久機(jī)制,以確保在服務(wù)器
    的頭像 發(fā)表于 12-05 10:05 ?450次閱讀

    云容器redis持久配置

    丟失。 Redis提供了不同的持久機(jī)制,可以根據(jù)需要進(jìn)行配置。本文將詳細(xì)介紹云容器中Redis
    的頭像 發(fā)表于 12-05 10:07 ?511次閱讀

    redis持久rdb和aof一起用好處

    Redis是一個(gè)流行的內(nèi)存數(shù)據(jù)庫(kù),它通過使用不同的持久機(jī)制來確保數(shù)據(jù)的持久性。RDB和AOF是Redi
    的頭像 發(fā)表于 12-05 10:17 ?771次閱讀

    Redis使用重要的兩個(gè)機(jī)制:Reids持久和主從復(fù)制

    今天這篇文章,我們一起了解 Redis 使用中非常重要的兩個(gè)機(jī)制:Reids 持久和主從復(fù)制。 我們都知道Redis是一個(gè)內(nèi)存數(shù)據(jù)庫(kù),在學(xué)
    的頭像 發(fā)表于 12-18 10:33 ?110次閱讀
    <b class='flag-5'>Redis</b>使用重要的兩個(gè)<b class='flag-5'>機(jī)制</b>:Reids<b class='flag-5'>持久</b><b class='flag-5'>化</b>和主從復(fù)制