婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 為什么斷電后Redis數據不會丟失

為什么斷電后Redis數據不會丟失

熱門標簽:南京400電話怎樣辦理 徐州ai電銷機器人原理 企業智能外呼系統價格多少 高德地圖標注商戶位置 智能電銷機器人銷售話術 兗州電話外呼營銷系統 福州電銷機器人源代碼 機器人外呼系統軟件存在問題 沈陽營銷電銷機器人招商

前言

Redis 作為一款內存數據庫,被廣泛使用于緩存,分布式鎖等場景,那么假如斷電或者因其他因素導致 Reids 服務宕機,在重啟之后數據會丟失嗎?

Redis 持久化機制

Redis 雖然是定義為一個內存數據庫,但是其也支持數據的持久化,在 Redis 中提供了兩種持久化機制:RDB 持久化和 AOF 持久化。

RDB 持久化機制

RDB 全稱為:Redis DataBase,是 Redis 當中默認的持久化方案。當觸發持久化條件時,Redis 默認會生成一個 dump.rdb 文件,Redis 在重啟的時候就會通過解析 dump.rdb 文件進行數據恢復。

RDB 機制觸發條件

RDB 持久化機制有兩種觸發方式:自動觸發和手動觸發。

自動觸發

自動觸發方式也可以分為三種:

  • 執行 flushall 命令(flushdb 命令不會觸發)時,不過此時生成的 dump 文件內的數據是空的(dump 文件還會存儲一些頭信息,所以文件本身是有內容的,只是沒有數據),沒有什么太大的實際意義。
  • 執行 shutdown 命令時會觸發生成 dump 文件。
  • 通過配置文件自動生成,Redis 中配置文件默認配置如下,只要達到這三個條件中的任意一個,就會觸發 RedisRDB 持久化機制。
save 900 1 //900秒內至少有1個key被添加或者更新
save 300 10 //300秒內至少有10個key被添加或者更新
save 60 10000 //60秒內至少有10000個key被添加或者更新

手動觸發

除了自動觸發,Redis 中還提供了 2 個手動觸發 RDB 機制的命令(這兩個命令不能同時被執行,一旦一個命令正在執行中,另一個命令會被拒絕執行):

  • save:這個命令會阻塞 Redis 服務器進程,直到成功創建 RDB 文件,也就是說在生成 RDB 文件之前,服務器不能處理客戶端發送的任何命令。
  • bgsave:父進程會執行 fork 操作來創建一個子進程。RDB 文件由子進程來負責生成,父進程可以正常處理客戶端發送的命令(這里也是 Redis 不僅僅只是單線程的一個體現)。

如果想要知道上一次成功執行 save 或者 bgsave 命令的時間,可以執行 lastsave 命令進行查看,lastsave 命令返回的是一個 unix 時間戳。

RDB 機制相關配置文件

除了上面提到的觸發生成 rdb 文件的配置參數,RDB 持久化機制還有如下一些相關命令:

dirrdb 文件生成目錄。默認是 ./(當前目錄),可以執行命令 config get dir 進行查看,如下圖所示說明當前 dump 文件生成目錄為 /usr/local/redis-5.0.5/bin

dbfilenamerdb 文件名。默認是 dump.rdb

rdbcompressionrdb 文件是否是 LZF 壓縮文件。默認是 yes

rdbchecksum:是否開啟數據校驗。默認是 yes

RDB 機制優點

  • RDB 是一個非常緊湊的壓縮文件,保存了不同時間點上的文件,非常適合用來災備和數據恢復。
  • RDB 最大限度地提高了 Redis 的性能,因為 Redis 父進程需要做的唯一的工作就是派生一個子進程來完成剩下的工作,父進程永遠不會執行磁盤 I/O 或類似的耗時操作。
  • 與后面介紹的 AOF 持久化機制比較,RDB 方式恢復數據的速度更快。

RDB 機制缺點

  • RDB 無法做到實時備份,所以如果 Redis 因異常停止工作而沒有正確的關機,那么從上一次備份的到異常宕機的這一段時間的數據將會丟失。
  • RDB 通常需要父進程來執行 fork 操作創建子線程,所以如果頻繁執行 fork 操作而 CPU 性能又不是很高的話可能會造成短時間內父進程不可用。

AOF 持久化機制

AOF 全稱為:Append Only File,是 Redis 當中提供的另一種持久化機制。AOF 采用日志的形式將每個寫操作追加到文件中。開啟 AOF 機制后,只要執行更改 Redis 數據的命令時,命令就會被寫入到 AOF 文件中。在 Redis 重啟的時候會根據日志內容依次執行 AOF 文件中的命令來恢復數據。

AOFRDB 最大的不同是:AOF 記錄的是執行命令(類似于 MySQLbinlogstatement 格式),而RDB 記錄的是數據(類似于 MySQLbinlogrow 格式)。

需要注意的是:假如同時開啟了 RDBAOF 兩種機制,那么 Redis 會優先選擇 AOF 持久化文件來進行數據恢復。

AOF 機制如何開啟

AOF 機制默認是關閉的,可以通過以下配置文件進行修改

appendonly no  //是否開啟AOF機制,默認是no表示關閉,修改為yes則表示開啟
appendfilename "appendonly.aof"  //AOF文件名

PS:和 RDB 機制一樣,其生成文件的路徑也是通過 dir 屬性進行配置。

AOF 機制數據是否實時寫入磁盤

AOF 機制下數據是否實時寫入磁盤,這個和 MySQLredo log 機制很類似,也是需要通過參數來進行控制。

AOF 數據何時寫入磁盤由參數 appendfsync 來進行控制:

appendfsync 描述 備注
always 寫入緩存的同時通知操作系統刷新(fsync)到磁盤(但是也可能會有部分操作系統只是盡快刷盤,而不是實時刷盤) Slow, Safest
everysec 先寫入緩存,然后每秒中刷一次盤(默認值),這種模式極端情況可能會丟失 1s 的數據 Compromise
no 只寫入緩存,什么時候刷盤由操作系統自己決定 Faster

AOF 文件重寫

AOF 機制主要是通過記錄執行命令的方式來實現的,那么隨著時間的增加,AOF 文件不可避免的會越來越大,而且可能會出現很多冗余命令。比如同一個 key 值執行了 10000set 操作,實際上前面 9999 次對恢復數據來說都是沒用的,只需要執行最后一次命令就可以把數據恢復,正是為了避免這種問題,AOF 機制就提供了文件重寫功能。

重寫原理分析

AOF 重寫時 Redis 并不會去分析原有的文件,因為如果原有文件過大,分析也會很耗時,所以 Redis 選擇的做法就是重新去 Redis 中讀取現有的鍵值對,然后用一條命令記錄鍵值對的值

只使用一條命令也有一個前提,那就是一個集合鍵或者列表鍵或者哈希鍵內包含的元素不能超過 64 個,一旦超過 64 個,就會使用多條命令來進行記錄。

AOF 重寫緩沖區

AOF 重寫的時候一般都會有大量的寫操作,所以為了不阻塞客戶端的命令請求,Redis 會把重寫操作放入到子進程中執行,但是放入子進程中執行也會帶來一個問題,那就是重寫期間如果同時又執行了客戶端發過來的命令,又該如何保證數據的一致性?

為了解決數據不一致問題,Redis 中引入了一個 AOF 重寫緩沖區。當開始執行 AOF 文件重寫之后又接收到客戶端的請求命令,不但要將命令寫入原本的 AOF 緩沖區(根據上面提到的參數刷盤),還要同時寫 入 AOF 重寫緩沖區:

一旦子進程完成了 AOF 文件的重寫,此時會向父進程發出信號,父進程收到信號之后會進行阻塞(阻塞期間不執行任何命令),并進行以下兩項工作:

  1. AOF 重寫緩沖區的文件刷新到新的 AOF 文件內。
  2. 將新 AOF 文件進行改名并原子的替換掉舊的 AOF 文件。

完成了上面的兩項工作之后,整個 AOF 重寫工作完成,父進程開始正常接收命令。

AOF 機制觸發條件

AOF 機制的觸發條件同樣也分為自動觸發和手動觸發。

自動觸發:自動觸發可以通過以下參數進行設置:

auto-aof-rewrite-percentag //文件大小超過上次AOF重寫之后的文件的百分比。默認100,也就是默認達到上一次AOF重寫文件的2倍之后會再次觸發AOF重寫
auto-aof-rewrite-min-size //設置允許重寫的最小AOF文件大小,默認是64M。主要是避免滿足了上面的百分比,但是文件還是很小的情況。

手動觸發:執行 bgrewriteaof 命令。

注意:bgrewriteaof 命令也不能和上面 RDB 持久化命令 bgsave 同時執行,這么做是為了避免同時創建兩個子進程來同時執行大量寫磁盤操作,影響到 Redis 的性能。

AOF 機制機制優點

  • 使用 AOF 機制,可以自由選擇不同 fsync (刷盤)策略,而且在默認策略下最多也僅僅是損失 1s 的數據。
  • AOF 日志是一個僅追加的日志,因此如果出現斷電,也不存在查找或損壞問題。即使由于某些原因(磁盤已滿或其他原因),日志已經寫了一半的命令結束,redis-check-aof工具也能夠輕松地修復它。
  • AOF 文件變得太大時,Redis 能夠在后臺自動重寫。
  • 不同于 RDB 的文件格式,AOF 是一種易于理解和解析的格式,依次包含所有操作的日志。

AOF 機制機制缺點

  • 對于相同的數據集,AOF 文件通常比等效的 RDB 文件大。
  • 根據 fsync 的具體策略,AOF 機制可能比 RDB 機制慢。但是一般情況下,fsync 設置為每秒的性能仍然很高,禁用 fsync 后,即使在高負載下,它的速度也能和 RDB 一樣快。
  • 因為 AOF 文件是追加形式,可能會遇到 BRPOPLPUSH 等阻塞命令的錯誤,從而導致生成的 AOF 在重新加載時不能復制完全相同的數據集,而 RDB 文件每次都是重新從頭創建快照,這在一定程度上來說 RDB 文件更加健壯。

總結

本文主要介紹了 Redis 的兩種持久化機制:RDBAOF,并分別介紹了兩種持久化機制的原理,通過對兩種持久化機制的對比分析了兩種持久化機制各自的優點和缺點。

到此這篇關于為什么斷電后Redis數據不會丟失的文章就介紹到這了,更多相關Redis數據丟失內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Redis主從集群切換數據丟失的解決方案
  • 解決docker重啟redis,mysql數據丟失的問題

標簽:本溪 鶴崗 昭通 景德鎮 大理 吉安 丹東 邯鄲

巨人網絡通訊聲明:本文標題《為什么斷電后Redis數據不會丟失》,本文關鍵詞  為什么,斷電,后,Redis,數據,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《為什么斷電后Redis數據不會丟失》相關的同類信息!
  • 本頁收集關于為什么斷電后Redis數據不會丟失的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品亚洲а∨天堂免在线| 欧美无砖砖区免费| 亚洲人成7777| 久久久久9999亚洲精品| 国产 欧美在线| 亚洲色图欧洲色图| 欧美一个色资源| 精品一区精品二区高清| 欧美性猛交一区二区三区精品| 欧美精品一区二区三区在线| 国产精品夜夜嗨| 麻豆精品视频在线观看免费| 欧美系列亚洲系列| 亚洲成人资源网| 欧美精品久久一区二区三区| 另类专区欧美蜜桃臀第一页| 精品国精品自拍自在线| 国产成人自拍高清视频在线免费播放| 国产亚洲欧美日韩俺去了| 大美女一区二区三区| 自拍视频在线观看一区二区| 日本精品免费观看高清观看| 五月天网站亚洲| 精品国产乱码久久久久久久久| 国产精品夜夜嗨| 亚洲一区二区三区免费视频| 久久综合九色综合97婷婷 | 蜜桃视频在线观看一区| 亚洲精品在线观看网站| 成人动漫一区二区在线| 天天影视涩香欲综合网| 欧美激情一区二区三区不卡 | 欧美大黄免费观看| 99视频国产精品| 老色鬼精品视频在线观看播放| 136国产福利精品导航| 日韩精品一区二区三区中文精品 | 欧美色国产精品| 黄页视频在线91| 夜夜嗨av一区二区三区| 26uuu亚洲综合色欧美| 欧美揉bbbbb揉bbbbb| 国产不卡视频一区二区三区| 日韩福利视频导航| 樱花草国产18久久久久| 国产亚洲欧洲997久久综合| 欧美精选午夜久久久乱码6080| 国产成人小视频| 久久99精品久久久久久动态图| 一区二区免费在线| 《视频一区视频二区| 国产色一区二区| 欧美电视剧免费观看| 欧美巨大另类极品videosbest| 91免费观看在线| heyzo一本久久综合| 成人午夜视频在线| 国产精品一品二品| 捆绑调教美女网站视频一区| 一区二区三区欧美激情| 国产综合一区二区| 精品一区精品二区高清| 亚洲综合av网| 不卡一二三区首页| 精品亚洲porn| 天天综合日日夜夜精品| 亚洲视频每日更新| 欧美国产精品一区| 国产精品欧美一区二区三区| 久久午夜免费电影| 久久先锋资源网| 欧美大白屁股肥臀xxxxxx| 欧美日韩免费不卡视频一区二区三区| 国产乱子轮精品视频| 蜜桃一区二区三区在线| 蜜桃视频免费观看一区| 日本特黄久久久高潮| 午夜精品福利一区二区三区av| 亚洲不卡av一区二区三区| 午夜在线电影亚洲一区| 蜜桃一区二区三区在线| 国产成人综合网站| 91麻豆自制传媒国产之光| 在线精品亚洲一区二区不卡| 欧美日韩国产影片| 欧美草草影院在线视频| 国产日本欧美一区二区| 亚洲日本青草视频在线怡红院| 亚洲区小说区图片区qvod| 婷婷成人激情在线网| 久久精品国产999大香线蕉| 国模大尺度一区二区三区| 成人性生交大片| 欧美色视频在线| 日韩欧美国产高清| 国产欧美精品一区二区色综合 | 国产精品福利一区二区三区| 中文av字幕一区| 亚洲区小说区图片区qvod| 日韩av不卡在线观看| 国产宾馆实践打屁股91| 欧美色男人天堂| 久久亚洲精华国产精华液| 亚洲欧美日韩国产手机在线| 日本伊人色综合网| 波多野结衣一区二区三区| 3d动漫精品啪啪1区2区免费| 亚洲欧洲成人av每日更新| 奇米精品一区二区三区四区 | 国内精品久久久久影院薰衣草| 成人av在线一区二区| 911精品产国品一二三产区| 国产性做久久久久久| 日韩成人精品在线| 日本韩国精品在线| 久久久777精品电影网影网 | 一区二区三区欧美日| 国产一区二区三区精品欧美日韩一区二区三区 | 免费人成黄页网站在线一区二区| 成人18视频在线播放| 欧美一区二区三区免费观看视频| 亚洲人成在线播放网站岛国| 懂色av一区二区三区免费看| 国精产品一区一区三区mba桃花| 亚洲国产日韩一区二区| 精品电影一区二区三区 | 一区二区三区成人在线视频| 韩国女主播一区二区三区| 欧美另类久久久品| 亚洲制服丝袜av| 91视频免费播放| 国产精品福利电影一区二区三区四区| 五月婷婷色综合| 精品视频免费看| 亚洲精品中文字幕在线观看| 国产色一区二区| 国产精品18久久久久久久久| 日韩一级片网址| 天天综合网天天综合色| 欧美精品一级二级| 亚洲r级在线视频| 欧美色偷偷大香| 香蕉影视欧美成人| 欧美日韩国产高清一区二区三区 | 韩国av一区二区三区四区| 精品久久久网站| 久久成人精品无人区| 久久蜜桃香蕉精品一区二区三区| 精品一区二区三区在线观看| 欧美日韩黄色影视| 五月婷婷久久综合| 欧美va在线播放| 国产福利91精品| 18成人在线视频| 欧美日韩中文另类| 黑人巨大精品欧美黑白配亚洲| 久久精品视频网| 91免费观看国产| 日日欢夜夜爽一区| 亚洲精品一区二区三区在线观看 | 国产夫妻精品视频| 亚洲色欲色欲www| 日韩一区二区三免费高清| 国产一区二区在线免费观看| 国产精品无圣光一区二区| 91成人免费网站| 日本欧美在线观看| 国产精品久久久久久一区二区三区| 色综合天天狠狠| 久99久精品视频免费观看| 国产精品日日摸夜夜摸av| 91在线视频在线| 日本女人一区二区三区| 中文字幕一区免费在线观看 | 亚洲国产wwwccc36天堂| 欧美成人vps| 欧美亚洲精品一区| 精品无人区卡一卡二卡三乱码免费卡 | 亚洲超碰精品一区二区| 久久久亚洲国产美女国产盗摄 | eeuss鲁片一区二区三区| 首页国产欧美日韩丝袜| 国产精品网站导航| 91精品国产一区二区| 成人av中文字幕| 激情综合一区二区三区| 一级女性全黄久久生活片免费| 精品久久久久久久人人人人传媒| 97久久精品人人爽人人爽蜜臀| 久久精品国产99久久6| 亚洲午夜久久久久久久久电影院| 国产日韩精品一区二区三区| 欧美高清www午色夜在线视频| a美女胸又www黄视频久久| 美女mm1313爽爽久久久蜜臀| 亚洲成人综合在线| 一区二区三区蜜桃| 久久精品亚洲乱码伦伦中文| 日韩欧美123| 日韩你懂的在线播放|