国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

一文了解Redis的持久化

數據庫 Redis
Redis 使用操作系統的多進程 COW(Copy On Write) 機制來實現快照持久化,這個機制很有意思,也很少人知道。多進程 COW 也是鑒定程序員知識廣度的一個重要指標。

我們都知道在對于Redis的開發或者面試的過程中,很容易就會遇到這個關于 Redis 持久化的問題,而我們在面試的時候,經常會有小伙伴只能說出這個 Redis 持久化的兩種方式,后續可能還會對比一些區別,但是對于怎么實現這個持久化的操作,都不是很熟,而且也并沒有實際應用過,以及什么時候應該使用什么類型的持久化,今天了不起就來給大家說說這個持久化。

Redis持久化

什么是 Redis 的持久化,我們都知道,Redis 是基于內存存儲的 key-value 的數據庫,那么如果出現斷電了,這就會導致數據丟失,那么持久化就非常重要了,也就是說,可以把數據寫入到硬盤上,而這個寫入到硬盤上面的操作,就是持久化。

Redis 持久化的兩種方式

  • RDB(Redis DataBase)
  • AOF(Append Of File)

什么是 RDB 呢?

簡而言之,就是在指定的時間間隔內,定時的將 redis 存儲的數據生成Snapshot快照并存儲到磁盤等介質上。

那么什么是 AOF 呢?

AOF 則是將 redis 執行過的所有寫指令記錄下來,在下次 redis 重新啟動時,只要把這些寫指令從前到后再重復執行一遍,就可以實現數據恢復了。

而 Redis 也是有自己默認的持久化的方式的,那就是 RDB 。

RDB持久化方式的原理

我們先說實現原理:

Redis 使用操作系統的多進程 COW(Copy On Write) 機制來實現快照持久化,這個機制很有意思,也很少人知道。多進程 COW 也是鑒定程序員知識廣度的一個重要指標。

Redis 在持久化時會調用 glibc 的函數 fork 產生一個子進程,快照持久化完全交給子進程來處理,父進程繼續處理客戶端請求。子進程剛剛產生時,它和父進程共享內存里面的代碼段和數據段。這時你可以將父子進程想像成一個連體嬰兒,共享身體。這是 Linux 操作系統的機制,為了節約內存資源,所以盡可能讓它們共享起來。在進程分離的一瞬間,內存的增長幾乎沒有明顯變化。

子進程做數據持久化,它不會修改現有的內存數據結構,它只是對數據結構進行遍歷讀取,然后序列化寫到磁盤中。但是父進程不一樣,它必須持續服務客戶端請求,然后對內存數據結構進行不間斷的修改。

這個時候就會使用操作系統的 COW 機制來進行數據段頁面的分離。數據段是由很多操作系統的頁面組合而成,當父進程對其中一個頁面的數據進行修改時,會將被共享的頁面復制一份分離出來,然后對這個復制的頁面進行修改。這時子進程相應的頁面是沒有變化的,還是進程產生時那一瞬間的數據。

而這,就是 fork,也就是多進程。

那么我們應該怎么去配置,然后怎么知道這個 默認的持久化方式呢?

RDB 修改持久化

在redis.conf中,可以修改rdb備份文件的名稱,默認為dump.rdb,如下:

圖片圖片

圖片圖片

而存放目錄也是默認為Redis啟動命令所在的目錄

從這里我們能去配置 Redis 的持久化的方式。

接下來我們就得看看怎么能觸發這個持久化的規則了。

觸發 RDB 持久化操作

圖片圖片

配置文件我們能看看到。

900秒(15分鐘)后,如果至少有一個按鍵發生變化。

300秒(5分鐘)后,如果至少有10個按鍵發生變化

60秒后,如果至少有10000個密鑰發生更改

而這個 save 就是用來配置備份的規則的。

其實這個就是相當于是自動備份了,這個配置直接都是使用的默認,或者咱們自己去修改這個 save 的操作。

如果我們想要恢復備份其實很簡單,其實當你重啟的時候,他默認會從咱們剛才看到的 dir 下去恢復,所以,如果你修改了備份的目錄,那么你想恢復備份,那么你就得之前的 dump.rdb 放到 dir 的下面,然后重啟 redis 就可以恢復了。

既然我們了解了這個 RDB 持久化了,那么接下來就得來說說這個 AOF 持久化了。

AOF 持久化

AOF 日志存儲的是 Redis 服務器的順序指令序列,AOF 日志只記錄對內存進行修改的指令記錄。

假設 AOF 日志記錄了自 Redis 實例創建以來所有的修改性指令序列,那么就可以通過對一個空的 Redis 實例順序執行所有的指令,也就是「重放」,來恢復 Redis 當前實例的內存數據結構的狀態。

所以按照使用來說,更多的人會選擇 RDB 的持久化。

寫入操作

Redis 在收到客戶端修改命令后,先進行相應的校驗,如果沒問題,就立即將該命令存追加到 .aof 文件中,也就是先存到磁盤中,然后服務器再執行命令。這樣就算遇到了突發的宕機情況情況,也只需將存儲到 .aof 文件中的命令,進行一次“命令重演”就可以恢復到宕機前的狀態。

也就是說,他是先存磁盤,然后再去執行命令。

而 Redis 為了提升寫入效率,它不會將內容直接寫入到磁盤中,而是將其放到一個內存緩存區(buffer)中等到緩存區被填滿時采用異步真正將緩存區中的內容寫入到磁盤里。

所以就有了問題,如果機器突然宕機,AOF 日志內容可能還沒有來得及完全刷到磁盤中,這個時候就會出現日志丟失。

我們都能知道這么淺顯的問題,那么 Redis 一定是可以解決的,解決方案都很粗暴,直接就是配置文件上寫明了。

圖片圖片

  • Everysec默認

服務器每一秒調用一次 fsync 函數,將緩沖區里面的命令寫入到硬盤。這種模式下,服務器出現故障,最多只丟失一秒鐘內的執行的命令數據,通常都使用它作為 AOF 配置策略

  • Always

服務器每寫入一個命令,就調用一次 fsync函數,將緩沖區里面的命令寫入到硬盤。這種模式下,服務器出現故障,也不會丟失任何已經成功執行的命令數據,但是其執行速度較慢

  • No

服務器不主動調用 fsync 函數,由操作系統決定何時將緩沖區里面的命令寫入到硬盤。這種模式下,服務器遭遇意外停機時,丟失命令的數量是不確定的,所以這種策略,不確定性較大,不安全。

而我們如果選用了 AOF ,那么在生產環境的服務器中,Redis 通常是每隔 1s 左右執行一次 fsync 操作( Everysec),這樣既保持了高性能,也讓數據盡可能的少丟失。

AOF 配置開啟

AOF默認不開啟,可以在 redis.conf 文件中對AOF進行配置開啟:

appendonly no # 是否開啟AOF,yes:開啟,no:不開啟,默認為no

appendfilename "appendonly.aof" # aof文件名稱,默認為appendonly.aof

dir ./ # aof文件所在目錄,默認./,表示執行啟動命令時所在的目錄

AOF 的備份恢復

AOF的備份機制和性能雖然和RDB不同,但是備份和恢復的操作同RDB一樣,都是拷貝備份文件,需要恢復時再拷貝到Redis工作目錄下,啟動系統即加載。

所以關于 Redis 的持久化操作,你學會了么?


責任編輯:武曉燕 來源: Java極客技術
相關推薦

2020-12-11 11:40:37

RDBAOFRedis

2019-11-20 10:07:07

Redis數據系統

2023-05-26 00:00:00

Redis持久化方式

2025-03-14 10:22:26

2020-08-27 07:34:50

Zookeeper數據結構

2021-09-17 13:34:57

大數據Redis 應用

2020-11-30 13:55:23

去中心化區塊鏈治理

2023-07-31 21:56:54

哨兵系統redis

2024-02-01 11:57:31

this指針代碼C++

2025-05-23 09:38:54

JWT開發Go

2022-02-25 07:34:36

MQTT協議RabbitMQ

2022-11-11 19:09:13

架構

2022-06-08 08:11:56

威脅建模網絡安全網絡攻擊

2023-11-06 08:16:19

APM系統運維

2023-11-20 08:18:49

Netty服務器

2023-04-26 15:43:24

容器編排容器編排工具

2021-04-29 18:18:51

Kubernetes容器工具

2021-09-27 07:39:52

Go初始化函數package

2022-10-28 13:48:24

Notebook數據開發機器學習

2022-03-24 08:51:48

Redis互聯網NoSQL
點贊
收藏

51CTO技術棧公眾號

丝袜诱惑亚洲看片| 日韩高清国产精品| 亚洲一区国产精品| 欧美另类综合| 亚洲成色最大综合在线| 99久久精品免费看| 狠狠干婷婷色| 欧美日韩一区久久| 欧美视频在线视频精品| 国产一区欧美二区三区| 久久电影网站中文字幕| 四虎影视av| 欧美大黄免费观看| 麻豆视频一区| 深夜福利成人| 亚洲欧洲制服丝袜| 污视频网站免费在线观看| 两个人的视频www国产精品| 精品国产一区二区三区四区| 亚洲欧美国产日韩天堂区| 97一区二区国产好的精华液| av资源站久久亚洲| 国产**成人网毛片九色| 夜色资源站国产www在线视频| 久久久久亚洲综合| 天堂中文字幕在线| 亚洲欧美日韩精品久久| 精品国内自产拍在线观看视频| 日韩电影大全在线观看| 国产精品久久久久aaaa樱花 | 国产一区二区三区三区在线观看| 在线国产91| 欧美猛男性生活免费| 国产精品av久久久久久麻豆网| 一本久道高清无码视频| 色噜噜狠狠成人中文综合| 日本aⅴ写真网站免费| 日韩欧美国产麻豆| 美女亚洲一区| 欧美一级免费播放| 欧美人与性动xxxx| 在线日本制服中文欧美| 人妻互换免费中文字幕| 欧美日韩久久久| 九一国产精品| 国产精品宾馆在线精品酒店| 欧美一区二区三区影视| 成人短片线上看| 免费高清在线观看免费| 亚洲二区在线播放视频| 欧美先锋影音| 成人福利视频导航| 欧美大成色www永久网站婷| 麻豆国产精品官网| 国产精品99999| 国产精品国产自产拍高清av水多| 成人一区二区三区视频在线观看| 日韩子在线观看| 91精品国产综合久久香蕉的用户体验 | 亚洲欧美精品一区| 国产亚洲综合精品| 精品三级久久久久久久电影聊斋| 欧美性极品xxxx娇小| 中文字幕一区二区三区四区久久| 亚洲精品国产suv一区88| 日韩欧美久久久| 韩国一区二区三区在线观看| 永久www成人看片| 66m—66摸成人免费视频| 91在线一区二区三区| 国产在线精彩视频| 色就是色欧美| 精品国一区二区三区| 久久精品综合| 在线观看wwwxxxx| 欧美日韩成人一区二区三区| 欧美日韩亚洲综合在线 | 激情视频一区二区| 欧美性感美女h网站在线观看免费| 亚洲性视频大全| 国产免费999| 亚洲综合清纯丝袜自拍| 7m精品国产导航在线| 亚洲国产精品久久久久婷蜜芽| 国产亚洲欧洲在线| 国产福利一区二区三区| 97影院理论| 韩国三级日本三级少妇99| 国产欧美日韩麻豆91| 在线视频你懂| 日韩av片永久免费网站| 国产精品久久777777| 风间由美性色一区二区三区四区| 五月婷婷丁香综合网| 久久久久久国产精品| 中文字幕一区二区三中文字幕| 日本福利一区| 少妇高潮露脸国语对白| 国产精自产拍久久久久久| 亚洲国产综合人成综合网站| 日韩av专区| 国产免费av高清在线| 久久精彩视频| 国产亚洲制服色| 美女一区二区在线观看| 男人本色网站| 91在线视频精品| 欧美日韩1区2区| 久久激情五月激情| 欧美国产日韩电影| 乌克兰美女av| 成人在线观看视频网站| 8x8x8国产精品| 国产精品白丝av| 精品素人av| 第一福利在线| 日韩不卡一二区| 韩国国内大量揄拍精品视频| 精品久久久久人成| 日韩 欧美一区二区三区| 二个人看的毛片| 91久久综合亚洲鲁鲁五月天| 538在线一区二区精品国产| 日韩1区2区日韩1区2区| av在线播放一区二区| 污污免费网站| 精品国产乱码久久久久久108| 精品亚洲一区二区三区| 欧美一区91| 羞羞网站在线免费观看| 国产一级爱c视频| 国产精品jvid在线观看蜜臀| 欧美久久久久久久久中文字幕| 粉嫩一区二区三区性色av| 色吊丝一区二区| 91精品国产综合久久久久久豆腐| 一区二区免费在线视频| 欧美国产精品日韩| 高潮白浆女日韩av免费看| 日韩一区二区三区高清在线观看| 国产免播放器视频| 欧美理论一区二区| 久久国产视频网站| 91成人免费网站| 不卡一卡二卡三乱码免费网站 | 亚洲永久免费观看| 亚洲欧美日韩天堂| 亚洲伊人伊色伊影伊综合网| 视频在线观看91| 久久人人爽人人爽人人片av不| yw193.com尤物在线| 极品美女扒开粉嫩小泬| 3d动漫精品啪啪一区二区三区免费 | 内射国产内射夫妻免费频道| 91最新在线免费观看| 亚洲欧洲日产国产网站| 久久一区国产| aaa国产精品视频| a级在线观看| 欧美激情第一页在线观看| 免费av在线一区| 欧美一区二区三区白人| 亚洲精品美国一| 丁香天五香天堂综合| 亚洲欧美一区在线| 最新黄色片网站| 欧美激情啪啪| 日韩欧美视频| 老司机精品导航| www久久久久| 国产精品综合在线视频| 国产精品观看| 99久久99热这里只有精品 | 国产日韩在线免费| 国产激情美女久久久久久吹潮| 欧美日韩精品综合| 91视频九色网站| 国产精品久久97| 欧美日韩在线观看一区| 日韩毛片中文字幕| 日日夜夜天天综合| 日av在线播放| 国产免费999| 亚洲免费视频播放| 国产富婆一区二区三区| 欧美乱妇高清无乱码| 精品成人私密视频| 欧美性xxxx极品hd满灌| 久久这里只有精品首页| 日韩福利电影在线观看| 久久久久久久久丰满| 狼人天天伊人久久| 91精品国产一区二区在线观看| av中文资源在线资源免费观看| 黄色电影免费在线看| 国产wwww| 尤物国产在线观看| 久久综合久久色| 18禁网站免费无遮挡无码中文| 超碰成人在线免费观看|