最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Redis的持久化方式

 更新時(shí)間:2024年10月24日 08:42:27   作者:Carver0808  
Redis提供了兩種主要的持久化方式:RDB和AOF,RDB通過定時(shí)快照的方式保存數(shù)據(jù)狀態(tài),而AOF記錄每個(gè)寫操作以便于重啟時(shí)重放,兩者可以結(jié)合使用,且在重啟時(shí)AOF文件會被優(yōu)先用于數(shù)據(jù)恢復(fù),RDB快照具有速度快、節(jié)省磁盤空間的優(yōu)點(diǎn),但可能會丟失最近的數(shù)據(jù)

一、概述

Redis提供了不同的持久性選項(xiàng):

RDB持久性按指定的時(shí)間間隔執(zhí)行數(shù)據(jù)集的時(shí)間點(diǎn)快照。

AOF持久性會記錄服務(wù)器接收的每個(gè)寫入操作,這些操作將在服務(wù)器啟動(dòng)時(shí)再次播放,以重建原始數(shù)據(jù)集。使用與Redis協(xié)議本身相同的格式記錄命令,并且僅采用追加方式。當(dāng)日志太大時(shí),Redis可以在后臺重寫日志。

如果您希望,只要您的數(shù)據(jù)在服務(wù)器運(yùn)行時(shí)就一直存在,則可以完全禁用持久性。

可以在同一實(shí)例中同時(shí)合并AOF和RDB。請注意,在這種情況下,Redis重新啟動(dòng)時(shí),AOF文件將用于重建原始數(shù)據(jù)集,因?yàn)樗梢员WC是最完整的。

Redis提供了不同的持久性方式,即為RDB和AOF兩種持久化方式,RDB持久化是指,在指定的時(shí)間間隔內(nèi)將內(nèi)存中的數(shù)據(jù)集寫入到磁盤中,這個(gè)時(shí)間間隔可以在配置文件中手動(dòng)配置,而AOF持久化則記錄的時(shí)每個(gè)寫入的操作而不是數(shù)據(jù)集,在恢復(fù)數(shù)據(jù)時(shí),在服務(wù)器啟動(dòng)時(shí)再一次執(zhí)行寫入操作,重新建立數(shù)據(jù),為了避免AOF文件會越來越大,AOF采用文件追加的方式,當(dāng)AOF的大小超過所設(shè)定的閾值時(shí),redis會啟動(dòng)AOF的內(nèi)容壓縮,只保留可以恢復(fù)數(shù)據(jù)的最小指令集。

在redis中同時(shí)開啟AOF和RDB兩種持久化方式,redis默認(rèn)優(yōu)先取AOF的數(shù)據(jù)。

二、Redis持久化–RDB

1、RDB的保存文件和保存路徑

在redis的redis.conf可以指定RDB保存文件名字,文件名以.rdb結(jié)尾,如下圖dump.rdb。可以在redis.conf中指定,RDB文件的保存路徑,如下圖RDB文件將會保存在/opt/myRedis/redis_dbfile/目錄下

2、RDB的保存策略

  • 保存策略一

自動(dòng)備份規(guī)則(滿足以下三種條件其中之一則生成rdb文件)

save 900 1		 #900秒內(nèi)完成1次對數(shù)據(jù)的改變
save 300 10		 #300秒內(nèi)完成1次對數(shù)據(jù)的改變
save 60 10000    #一分鐘內(nèi)完成1次對數(shù)據(jù)的改變	
  • 保存策略二

正常關(guān)閉redis觸發(fā)持久化,如使用shutdown命令關(guān)閉redis(shutdown),如下圖:

3、RDB持久相關(guān)配置(在redis.conf配置文件中)

stop-writes-on-bgsave-error yes 后臺存儲存儲發(fā)生錯(cuò)誤時(shí)禁止寫入

  • 默認(rèn)為yesrdbcompression yes 啟動(dòng)rdb文件壓縮,耗費(fèi)CPU資源
  • 默認(rèn)為yesrdbchecksum yes 對rdb數(shù)據(jù)進(jìn)行校驗(yàn),耗費(fèi)CPU資源
  • 默認(rèn)為yesdbfilename dump.rdb rdb文件名稱dir ./ rdb文件保存目錄

4、RDB的備份與恢復(fù)

RDB的備份

先通過config get dir 查詢到rdb文件的目錄,然后再將*.rdb文件拷貝到別的地方,簡單來說就是找到你需要備份的rdb文件,然后拷貝就完成了rdb的備份

RDB的恢復(fù)

  • a.關(guān)閉redis
  • b.把rdb文件放到redis的工作目錄下
  • c.啟動(dòng)redis,備份的數(shù)據(jù)就會直接加載

5、RDB的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

節(jié)省磁盤空間恢復(fù)數(shù)據(jù)速度快

缺點(diǎn):

雖然redis在持久化創(chuàng)建一個(gè)子線程進(jìn)行持久化,并且使用了“寫時(shí)復(fù)制”技術(shù),但是如果數(shù)據(jù)足夠龐大還是比較消耗性能的。

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

三、Redis持久化–AOF

1、AOF的保存文件和保存路徑

AOF默認(rèn)是不開啟的,需要在配置文件中手動(dòng)配置,如下圖在redis.conf中將appendonly設(shè)置為yes表示開啟AOF持久化,appendfilename參數(shù)表示AOF保存文件,AOF文件保存路徑和RDB文件保存路徑一致,即設(shè)置dir參數(shù)

2、AOF的保存策略

在配置文件中設(shè)置AOF保存策略,當(dāng)appendfsync屬性設(shè)置為always表示每次redis的寫入都會被記入日志;

everysec表示每秒記入日志一次,如果宕機(jī),本秒的數(shù)據(jù)可能丟失;

no表示不主動(dòng)記入

3、AOF的重寫機(jī)制

AOF是通過記錄redis的寫入命令來實(shí)現(xiàn)持久化的,在恢復(fù)數(shù)據(jù)時(shí),在服務(wù)器啟動(dòng)時(shí)再一次執(zhí)行寫入操作,重新建立數(shù)據(jù),所以問題就誕生了,AOF文件的大小隨著時(shí)間的流逝一定會越來越大,大大影響了redis服務(wù)器的性能,避免出現(xiàn)此種情況,AOF新增了重寫機(jī)制,當(dāng)AOF文件的大小超過所設(shè)定的閾值時(shí),Redis就會啟動(dòng)AOF文件的內(nèi)容壓縮,只保留可以恢復(fù)數(shù)據(jù)的最小指令集.如下圖實(shí)例,AOF用一條rpush list “B” “D” “E” “F” “G” “a” "b"代替前面的5條命令。

4、AOF的備份與恢復(fù)

AOF的備份和恢復(fù)和RDB的備份和恢復(fù)操作一致,都是拷貝備份文件,需要恢復(fù)時(shí)將備份文件放到redis的工作目錄下,啟動(dòng)系統(tǒng)即加載數(shù)據(jù)。

注意:當(dāng)AOF和RDB同時(shí)開啟時(shí),系統(tǒng)默認(rèn)取AOF的數(shù)據(jù)。

5、AOF的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

備份機(jī)制更健壯,丟失數(shù)據(jù)的概率更低可讀的持久化日志文本,通過操作AOF穩(wěn)健,可以處理誤操作

缺點(diǎn):

比起RDB占用更多的磁盤空間恢復(fù)數(shù)據(jù)比RDB慢每次讀寫都寫入AOF的話,有一定的性能壓力存在個(gè)別bug,造成恢復(fù)不能

四、兩種持久化方式如何選型

1、官方推薦兩個(gè)都使用

2、如果對數(shù)據(jù)不敏感,可以選單獨(dú)用RDB

3、不建議單獨(dú)使用AOF,因?yàn)闀霈F(xiàn)個(gè)別bug

4、如果只是做純內(nèi)存緩存,可以都不用

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Redis源碼解析:集群手動(dòng)故障轉(zhuǎn)移、從節(jié)點(diǎn)遷移詳解

    Redis源碼解析:集群手動(dòng)故障轉(zhuǎn)移、從節(jié)點(diǎn)遷移詳解

    這篇文章主要介紹了Redis源碼解析:集群手動(dòng)故障轉(zhuǎn)移、從節(jié)點(diǎn)遷移的相關(guān)內(nèi)容,涉及通過集群定時(shí)器函數(shù)clusterCron實(shí)現(xiàn)從節(jié)點(diǎn)遷移等知識,具有一定參考價(jià)值,需要的朋友可以了解。
    2017-10-10
  • 如何利用Redis?List實(shí)現(xiàn)Java數(shù)據(jù)庫分頁快速查詢

    如何利用Redis?List實(shí)現(xiàn)Java數(shù)據(jù)庫分頁快速查詢

    這篇文章主要給大家介紹了關(guān)于如何利用Redis?List實(shí)現(xiàn)Java數(shù)據(jù)庫分頁快速查詢的相關(guān)資料,Redis是一個(gè)高效的內(nèi)存數(shù)據(jù)庫,它支持包括String、List、Set、SortedSet和Hash等數(shù)據(jù)類型的存儲,需要的朋友可以參考下
    2024-02-02
  • 高效異步redis客戶端aredis優(yōu)劣勢原理解析

    高效異步redis客戶端aredis優(yōu)劣勢原理解析

    這篇文章主要介紹了高效異步redis客戶端aredis優(yōu)劣勢原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • redis++的編譯?安裝?使用方案

    redis++的編譯?安裝?使用方案

    這篇文章主要介紹了redis++的編譯?安裝?使用方案的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • Redis實(shí)現(xiàn)分布式鎖全過程

    Redis實(shí)現(xiàn)分布式鎖全過程

    文章介紹Redis實(shí)現(xiàn)分布式鎖的方法,包括使用SETNX和EXPIRE命令確?;コ庑耘c防死鎖,Redisson客戶端提供的便捷接口,以及Redlock算法通過多節(jié)點(diǎn)共識提高容錯(cuò)性,同時(shí)強(qiáng)調(diào)需合理設(shè)置鎖過期時(shí)間、唯一標(biāo)識,并注意網(wǎng)絡(luò)分區(qū)問題
    2025-08-08
  • 5分鐘教你docker安裝啟動(dòng)redis全教程(全新方式)

    5分鐘教你docker安裝啟動(dòng)redis全教程(全新方式)

    今天,我來帶大家使用一種全新的方式docker來安裝redis,首先我們來了解一下什么是redis以及我們?yōu)槭裁匆褂胷edis,以及它的優(yōu)缺點(diǎn),感興趣的朋友跟隨小編一起學(xué)習(xí)下吧
    2021-05-05
  • 使用Redis實(shí)現(xiàn)UA池的方案

    使用Redis實(shí)現(xiàn)UA池的方案

    這篇文章主要介紹了使用Redis實(shí)現(xiàn)UA池的方案,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • redis淘汰策略的幾種實(shí)現(xiàn)

    redis淘汰策略的幾種實(shí)現(xiàn)

    redis內(nèi)存數(shù)據(jù)數(shù)據(jù)集大小升到一定大的時(shí)候,就會實(shí)行數(shù)據(jù)淘汰策略,本文主要介紹了redis淘汰策略的幾種實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • redis?bitmap數(shù)據(jù)結(jié)構(gòu)之java對等操作詳解

    redis?bitmap數(shù)據(jù)結(jié)構(gòu)之java對等操作詳解

    bitmap是以其高性能出名。其基本原理是一位存儲一個(gè)標(biāo)識,其他衍生知道咱就不說了,而redis就是以這種原生格式存儲的,這篇文章主要介紹了redis?bitmap數(shù)據(jù)結(jié)構(gòu)之java對等操作,需要的朋友可以參考下
    2022-10-10
  • redis通用配置類的使用詳解

    redis通用配置類的使用詳解

    Redis通用配置類通過設(shè)置JSON序列化器,解決Spring?Boot中RedisTemplate默認(rèn)使用byte數(shù)組存儲數(shù)據(jù)導(dǎo)致的不可讀問題,使數(shù)據(jù)以JSON字符串形式保存,便于查看與調(diào)試
    2025-08-08

最新評論

铁岭市| 枝江市| 渝中区| 宁国市| 拉萨市| 府谷县| 平陆县| 德惠市| 临江市| 垦利县| 双桥区| 普兰县| 青神县| 闽清县| 黔西县| 吉安县| 灵丘县| 象州县| 涿鹿县| 云梦县| 普洱| 来宾市| 祥云县| 鹤岗市| 克什克腾旗| 浦北县| 游戏| 临湘市| 屯门区| 正定县| 邵阳县| 桦川县| 贺兰县| 山阳县| 铜川市| 沁阳市| 中山市| 巴东县| 高安市| 元氏县| 岱山县|