91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis中怎么實現持久化

發布時間:2021-06-26 14:24:31 來源:億速云 閱讀:139 作者:Leah 欄目:大數據

這期內容當中小編將會給大家帶來有關redis中怎么實現持久化,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

redis 持久化的兩種方式

  • RDB:RDB 持久化機制,是對 redis 中的數據執行周期性的持久化。

  • AOF:AOF 機制對每條寫入命令作為日志,以 append-only 的模式寫入一個日志文件中,在 redis 重啟的時候,可以通過回放 AOF 日志中的寫入指令來重新構建整個數據集。

通過 RDB 或 AOF,都可以將 redis 內存中的數據給持久化到磁盤上面來,然后可以將這些數據備份到別的地方去,比如說阿里云等云服務。

如果 redis 掛了,服務器上的內存和磁盤上的數據都丟了,可以從云服務上拷貝回來之前的數據,放到指定的目錄中,然后重新啟動 redis,redis 就會自動根據持久化數據文件中的數據,去恢復內存中的數據,繼續對外提供服務。

如果同時使用 RDB 和 AOF 兩種持久化機制,那么在 redis 重啟的時候,會使用 AOF 來重新構建數據,因為 AOF 中的數據更加完整。

RDB 優缺點
  • RDB會生成多個數據文件,每個數據文件都代表了某一個時刻中 redis 的數據,這種多個數據文件的方式,非常適合做冷備,可以將這種完整的數據文件發送到一些遠程的安全存儲上去,比如說 Amazon 的 S3 云服務上去,在國內可以是阿里云的 ODPS 分布式存儲上,以預定好的備份策略來定期備份redis中的數據。

  • RDB 對 redis 對外提供的讀寫服務,影響非常小,可以讓 redis 保持高性能,因為 redis 主進程只需要 fork 一個子進程,讓子進程執行磁盤 IO 操作來進行 RDB 持久化即可。

  • 相對于 AOF 持久化機制來說,直接基于 RDB 數據文件來重啟和恢復 redis 進程,更加快速。

  • 如果想要在 redis 故障時,盡可能少的丟失數據,那么 RDB 沒有 AOF 好。一般來說,RDB 數據快照文件,都是每隔 5 分鐘,或者更長時間生成一次,這個時候就得接受一旦 redis 進程宕機,那么會丟失最近 5 分鐘的數據。

  • RDB 每次在 fork 子進程來執行 RDB 快照數據文件生成的時候,如果數據文件特別大,可能會導致對客戶端提供的服務暫停數毫秒,或者甚至數秒。

AOF 優缺點
  • AOF 可以更好的保護數據不丟失,一般 AOF 會每隔 1 秒,通過一個后臺線程執行一次fsync操作,最多丟失 1 秒鐘的數據。

  • AOF 日志文件以 append-only 模式寫入,所以沒有任何磁盤尋址的開銷,寫入性能非常高,而且文件不容易破損,即使文件尾部破損,也很容易修復。

  • AOF 日志文件即使過大的時候,出現后臺重寫操作,也不會影響客戶端的讀寫。因為在 rewrite log 的時候,會對其中的指導進行壓縮,創建出一份需要恢復數據的最小日志出來。再創建新日志文件的時候,老的日志文件還是照常寫入。當新的 merge 后的日志文件 ready 的時候,再交換新老日志文件即可。

  • AOF 日志文件的命令通過非常可讀的方式進行記錄,這個特性非常適合做災難性的誤刪除的緊急恢復。比如某人不小心用 flushall 命令清空了所有數據,只要這個時候后臺 rewrite 還沒有發生,那么就可以立即拷貝 AOF 文件,將最后一條 flushall 命令給刪了,然后再將該 AOF 文件放回去,就可以通過恢復機制,自動恢復所有數據。

  • 對于同一份數據來說,AOF 日志文件通常比 RDB 數據快照文件更大。

  • AOF 開啟后,支持的寫 QPS 會比 RDB 支持的寫 QPS 低,因為 AOF 一般會配置成每秒 fsync 一次日志文件,當然,每秒一次 fsync,性能也還是很高的。(如果實時寫入,那么 QPS 會大降,redis 性能會大大降低)

  • 以前 AOF 發生過 bug,就是通過 AOF 記錄的日志,進行數據恢復的時候,沒有恢復一模一樣的數據出來。所以說,類似 AOF 這種較為復雜的基于命令日志/merge/回放的方式,比基于 RDB 每次持久化一份完整的數據快照文件的方式,更加脆弱一些,容易有 bug。不過 AOF 就是為了避免 rewrite 過程導致的 bug,因此每次 rewrite 并不是基于舊的指令日志進行 merge 的,而是基于當時內存中的數據進行指令的重新構建,這樣健壯性會好很多。

RDB和AOF到底該如何選擇

  • 不要僅僅使用 RDB,因為那樣會導致你丟失很多數據

  • 也不要僅僅使用 AOF,因為那樣有兩個問題,第一,你通過 AOF 做冷備,沒有 RDB 做冷備,來的恢復速度更快; 第二,RDB 每次簡單粗暴生成數據快照,更加健壯,可以避免 AOF 這種復雜的備份和恢復機制的 bug。

  • redis 支持同時開啟開啟兩種持久化方式,我們可以綜合使用 AOF 和 RDB 兩種持久化機制,用 AOF 來保證數據不丟失,作為數據恢復的第一選擇; 用 RDB 來做不同程度的冷備,在 AOF 文件都丟失或損壞不可用的時候,還可以使用 RDB 來進行快速的數據恢復。

上述就是小編為大家分享的redis中怎么實現持久化了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

百色市| 高青县| 中山市| 岳西县| 滨州市| 铁岭市| 绥化市| 石河子市| 霍林郭勒市| 桦川县| 吉木萨尔县| 黑龙江省| 油尖旺区| 类乌齐县| 天长市| 汕头市| 赫章县| 西乌| 九台市| 临清市| 盐津县| 九寨沟县| 茂名市| 会同县| 永定县| 厦门市| 辽阳县| 四子王旗| 邯郸县| 湾仔区| 兴山县| 上杭县| 奎屯市| 嘉鱼县| 宁城县| 马尔康县| 丰城市| 三穗县| 昌图县| 壤塘县| 西青区|