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

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

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

RDB(Redis DataBases)

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

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

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

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

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

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

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

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

總結(jié)

在這里插入圖片描述

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

AOF(Append Only File)

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

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

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

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

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

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

總結(jié)

在這里插入圖片描述

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

兩種方式的總結(jié)

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

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

相關(guān)文章

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

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

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

    解決redis修改requirepass后不生效的問題

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

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

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

    淺談Redis阻塞的9種情況

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

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

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

    Windows下Redis的安裝使用圖解

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

    Window server中安裝Redis的超詳細教程

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

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

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

    Redis如何部署哨兵

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

    redis常用命令、常見錯誤、配置技巧等分享

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

最新評論