欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Redis數(shù)據(jù)持久化方式技術(shù)解析

 更新時(shí)間:2021年09月16日 11:54:50   作者:玉成226  
Redis(Remote Dictionary Server ),即遠(yuǎn)程字典服務(wù),是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API

RDB(Redis DataBases)

1、RDB是什么:
在指定的時(shí)間間隔內(nèi)將內(nèi)存中的數(shù)據(jù)集快照寫(xiě)入磁盤(pán),也就是Snapshot快照,它恢復(fù)時(shí)是將快照文件直接讀到內(nèi)存里。
Redis會(huì)單獨(dú)創(chuàng)建(fork)一個(gè)子進(jìn)程來(lái)進(jìn)行持久化,會(huì)將數(shù)據(jù)寫(xiě)入到一個(gè)臨時(shí)文件中,持久化過(guò)程都結(jié)束了,再用這個(gè)臨時(shí)文件替換上次持久化好的文件。整個(gè)過(guò)程中,主進(jìn)程是不進(jìn)行任何IO操作的,這就確保了極高的性能,如果需要進(jìn)行大規(guī)模數(shù)據(jù)的恢復(fù),且對(duì)于數(shù)據(jù)恢復(fù)的完整性不是非常敏感,那RDB方式是要比AOF方式更加的高效。RDB的缺點(diǎn)是最后一次持久化后的數(shù)據(jù)可能丟失。

2、Fork的作用:
Fork的作用是復(fù)制一個(gè)與當(dāng)前進(jìn)程一樣的進(jìn)程。新進(jìn)程的所有數(shù)據(jù)(變量、環(huán)境變量、程序計(jì)數(shù)器等)數(shù)值都和原進(jìn)程一致,但是是一個(gè)全新的進(jìn)程,并作為原進(jìn)程的子進(jìn)程。

3、Rdb保存的是dump.rdb文件。

4、如何觸發(fā)RDB快照
(1)配置文件中默認(rèn)的快照配置:冷拷貝后重新使用(可以cp dump.rdb dump_new.rdb)。
(2)命令save或者bgsave:Save,只管保存其他不管,全部阻塞;bgsave,redis會(huì)在后臺(tái)異步進(jìn)行快照操作,快照同時(shí)還可以響應(yīng)客戶(hù)端請(qǐng)求??梢酝ㄟ^(guò)lastsave命令獲取最后一次成功執(zhí)行快照的時(shí)間。
(3)執(zhí)行flushall命令,也會(huì)產(chǎn)生dump.rdb文件,但里面是空的,無(wú)意義。

5、如何恢復(fù): 將備份文件(dump.rdb)移動(dòng)到redis安裝目錄并啟動(dòng)服務(wù)即可。

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

7、劣勢(shì):在一定間隔時(shí)間做一次備份,所以如果redis意外down掉的話(huà),就會(huì)丟失最后一次快照后的所有修改。Fork的時(shí)候,內(nèi)存中的數(shù)據(jù)被克隆了一份,大致2倍的膨脹性需要考慮。

8、如何停止:動(dòng)態(tài)所有停止RDB保存規(guī)則的方法:redis-cli config set save “”

總結(jié)

在這里插入圖片描述

1、RDB是一個(gè)非常緊湊的文件。
2、RDB在保存RDB文件時(shí)父進(jìn)程唯一需要做的就是fork出一個(gè)子進(jìn)程,接下來(lái)的工作全部由子進(jìn)程來(lái)做,父進(jìn)程不需要再做其他IO操作,所以RDB持久化方式可以最大化redis的性能。
3、與AOF相比,再恢復(fù)大的數(shù)據(jù)集的時(shí)候,RDB方式會(huì)更快一些。
4、數(shù)據(jù)丟失風(fēng)險(xiǎn)大。
5、RDB需要經(jīng)常fork子進(jìn)程來(lái)保存數(shù)據(jù)集到硬盤(pán)上,當(dāng)數(shù)據(jù)集比較大的時(shí)候,fork的過(guò)程是非常耗時(shí)的,可能會(huì)導(dǎo)致Redis在一些毫秒級(jí)不能響應(yīng)客戶(hù)端請(qǐng)求。

AOF(Append Only File)

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

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

3、重寫(xiě)原理:AOF文件持續(xù)增長(zhǎng)而過(guò)大時(shí),會(huì)fork出一條新進(jìn)程來(lái)將文件重寫(xiě)(也是先寫(xiě)臨時(shí)文件最后再rename),遍歷新進(jìn)程的內(nèi)存中數(shù)據(jù),每條記錄有一條的set語(yǔ)句。重寫(xiě)aof文件的操作,并沒(méi)有讀取舊的aof文件,而是將整個(gè)內(nèi)存中的數(shù)據(jù)庫(kù)內(nèi)容用命令的方式重寫(xiě)了一個(gè)新的aof文件,這點(diǎn)和快照點(diǎn)數(shù)類(lèi)似。

4、重寫(xiě)的觸發(fā)機(jī)制:Redis會(huì)記錄上次重寫(xiě)時(shí)AOF的大小,默認(rèn)配置時(shí)當(dāng)AOF文件大小是上次rewrite后大小的一倍且文件大于64MB時(shí)觸發(fā)。

5、優(yōu)勢(shì):
(1)每秒同步:appendfsync always同步持久化每次發(fā)生數(shù)據(jù)變更會(huì)被立即記錄到磁盤(pán),性能較差但數(shù)據(jù)完整性比較好。
(2)每次修改同步:appendfsync everysec 異步操作,每秒記錄如果一秒內(nèi)宕機(jī),有數(shù)據(jù)丟失。
(3)不同步:appendfsync no 從不同步。

6、劣勢(shì):
(1)相同數(shù)據(jù)集的數(shù)據(jù)而言aof文件要遠(yuǎn)大于rdb文件,恢復(fù)速度慢于rdb。
(2)AOF運(yùn)行效率要慢于rdb,每秒同步策略效率較好,不同步效率和rdb相同。

總結(jié)

在這里插入圖片描述

1、AOF文件是一個(gè)只進(jìn)行追加的日志文件。
2、Redis可以再AOF文件體積變得過(guò)大時(shí),自動(dòng)地在后臺(tái)對(duì)AOF進(jìn)行重寫(xiě)。
3、AOF文件有序地保存了對(duì)數(shù)據(jù)庫(kù)執(zhí)行的所有寫(xiě)入操作,這些寫(xiě)入操作以Redis協(xié)議的格式保存,因此AOF文件的內(nèi)容非常容易被人讀懂,對(duì)文件進(jìn)行分析也很輕松。
4、對(duì)于相同的數(shù)據(jù)集來(lái)說(shuō),AOF文件的體積通常要大于RDB文件的體積。
5、根據(jù)所使用的fsync策略,AOF的速度可能會(huì)慢于RDB。

兩種方式的總結(jié)

1、RDB持久化方式能夠在指定的時(shí)間間隔能對(duì)你的數(shù)據(jù)進(jìn)行快照存儲(chǔ)。
2、AOF持久化方式記錄每次對(duì)服務(wù)器寫(xiě)的操作,當(dāng)服務(wù)器重啟的時(shí)候會(huì)重新執(zhí)行這些命令來(lái)恢復(fù)原始的數(shù)據(jù),AOF文件進(jìn)行后臺(tái)重寫(xiě),使得AOF文件的體積不至于過(guò)大。
3、只做緩存:如果你只希望你的數(shù)據(jù)在服務(wù)器運(yùn)行的時(shí)候存在,你也可以不使用任何持久化方式。

以上就是Redis緩存持久化技術(shù)解析的詳細(xì)內(nèi)容,更多關(guān)于redis持久化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Redis設(shè)置鍵的生存時(shí)間或過(guò)期時(shí)間的方法詳解

    Redis設(shè)置鍵的生存時(shí)間或過(guò)期時(shí)間的方法詳解

    這篇文章主要介紹了Redis如何設(shè)置鍵的生存時(shí)間或過(guò)期時(shí)間,通過(guò)EXPIRE命令或者PEXIPIRE命令,客戶(hù)端可以以秒或者毫秒精度為數(shù)據(jù)庫(kù)中的某個(gè)鍵設(shè)置生存時(shí)間,文中有詳細(xì)的代碼供供大家參考,需要的朋友可以參考下
    2024-03-03
  • 解決redis修改requirepass后不生效的問(wèn)題

    解決redis修改requirepass后不生效的問(wèn)題

    今天小編就為大家分享一篇解決redis修改requirepass后不生效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • redis輕松處理經(jīng)緯度坐標(biāo)點(diǎn)數(shù)據(jù)的實(shí)現(xiàn)方法

    redis輕松處理經(jīng)緯度坐標(biāo)點(diǎn)數(shù)據(jù)的實(shí)現(xiàn)方法

    這篇文章主要介紹了redis輕松處理經(jīng)緯度坐標(biāo)點(diǎn)數(shù)據(jù)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 淺談Redis阻塞的9種情況

    淺談Redis阻塞的9種情況

    本文主要介紹了淺談Redis阻塞的9種情況,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Redis生成全局唯一ID的實(shí)現(xiàn)方法

    Redis生成全局唯一ID的實(shí)現(xiàn)方法

    全局唯一ID生成器是一種在分布式系統(tǒng)下用來(lái)生成全局唯一ID的工具,本文主要介紹了Redis生成全局唯一ID的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2022-06-06
  • Windows下Redis的安裝使用圖解

    Windows下Redis的安裝使用圖解

    Redis是一個(gè)key-value存儲(chǔ)系統(tǒng)。Redis的出現(xiàn),很大程度補(bǔ)償了memcached這類(lèi)key/value存儲(chǔ)的不足,在部分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫(kù)起到很好的補(bǔ)充作用。這篇文章小編為大家分享了在Windows下進(jìn)行安裝和使用Redis的技巧。
    2015-09-09
  • Window server中安裝Redis的超詳細(xì)教程

    Window server中安裝Redis的超詳細(xì)教程

    這篇文章主要介紹了Window server中安裝Redis的教程,本文通過(guò)圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11
  • 分布式架構(gòu)Redis中有哪些數(shù)據(jù)結(jié)構(gòu)及底層實(shí)現(xiàn)原理

    分布式架構(gòu)Redis中有哪些數(shù)據(jù)結(jié)構(gòu)及底層實(shí)現(xiàn)原理

    這篇文章主要為大家介紹了分布式架構(gòu)Redis中有哪些數(shù)據(jù)結(jié)構(gòu)及底層的實(shí)現(xiàn)原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • Redis如何部署哨兵

    Redis如何部署哨兵

    本文主要介紹了Redis如何部署哨兵,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • redis常用命令、常見(jiàn)錯(cuò)誤、配置技巧等分享

    redis常用命令、常見(jiàn)錯(cuò)誤、配置技巧等分享

    這篇文章主要介紹了redis常用命令、常見(jiàn)錯(cuò)誤、配置技巧等分享,本文分享了12條redis知識(shí),需要的朋友可以參考下
    2015-02-02

最新評(píng)論