中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Redis中的兩種持久化方式是什么

發布時間:2021-10-25 13:42:35 來源:億速云 閱讀:178 作者:iii 欄目:關系型數據庫

本篇內容主要講解“Redis中的兩種持久化方式是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Redis中的兩種持久化方式是什么”吧!

Redis中的兩種持久化方式是什么

Redis的兩種持久化方式

眾所周知,Redis中提供了AOF,RDB兩種持久化,下面先來簡單回顧一下。

RDB持久化

  • RDB持久化,就是把當前時間點的數據庫的狀態保存到磁盤中,又稱快照持久化

  • RDB可以手動觸發,也可以根據服務器配置定期執行。

  • RDB生成的文件,是一個經過壓縮的二進制文件,數據庫可以通過該文件還原到該時間點的狀態

  • Redis提供前臺RDB持久化命令SAVE和后臺RDB持久化命令BGSAVE,前臺執行時,Redis的其他命令會被阻塞,而后臺執行時,Redis還可以繼續處理客戶端的命令請求。

  • RDB二進制文件中,保存的是鍵值對數據,采用經過壓縮的自定義編碼,帶校驗。通過od命令可以轉化為可讀。

  • 主從復制時,初始化的全量復制采用RDB文件。

【相關推薦:Redis視頻教程】

AOF持久化

  • AOF持久化,全稱是Appen Only File,意思是追加的持久化方式,其中保存的是寫命令,而非數據。

  • AOF持久化過程分為命令追加、文件寫入、文件同步三個步驟。

  • 命令追加:Redis服務端每執行完一個寫命令,都會以AOF協議格式將該寫命令追加到服務器狀態的aof_buf緩沖區末尾。

  • 文件寫入:Redis中,每結束一個事件循環之前,都會調用flushAppendOnlyFile函數,將aof_buf緩沖區中的內容寫入到AOF文件。

  • 文件同步:同步sync指的是文件寫入到操作系統緩沖區中時,是否直接同步到磁盤中。通過配置,可以選擇立即同步、每秒同步、不主動同步而由操作系統控制,這三種同步方式。關于文件I/O緩沖:https://www.litreily.top/2018/10/25/io-cache/

  • Redis優先使用AOF文件來恢復數據。

  • AOF文件由于存儲命令,且沒有經過壓縮,其體積要大于RDB文件。

  • AOF文件可以定期采用BGREWRITEAOF重寫,減少重復命令、已失效命令,合并命令等。

  • AOF文件支持后臺重寫,采用fork子進程的形式實現。子進程帶有服務器進程的數據副本,再避免使用鎖的情況下保證數據安全性。另外也采用AOF重寫緩沖區解決了數據不一致。

兩種持久化分別的優缺點

RDB的優點

  • 文件體積小,適合拷貝做冷備

  • 相比AOF,備份恢復速度更快

RDB的缺點

  • 丟失數據多

  • fork子進程來做BGSAVE,消耗一定的內存資源

AOF的優點

  • 丟失數據少

  • 增加了寫緩沖區,無需尋址,速度快

  • append-only,也無需做磁盤尋址,效率高

AOF的缺點

  • 文件體積大

  • AOF每次都需要做一下寫入aof_buf的操作,開啟AOF持久化后,QPS會略微降低

Redis為什么需要兩種持久化?

經過上面的回顧,我們可以看到,RDB與AOF持久化有明顯區別。

  • 存儲的內容:RDB存儲某一時間點的數據;AOF存儲執行的寫命令。

  • 文件大小:RDB文件較小;AOF文件較大。

  • 寫入方式:RDB可采用前臺/后臺寫入方式;AOF采用每次執行寫命令,都將命令存入緩沖區的方式,另外可定期重寫。

  • 數據丟失:RDB丟失從宕機到上一次RDB同步之間的所有數據;AOF根據I/O緩沖區所配置的刷新方式,不丟失或丟失1s或幾秒的數據。

根據這些對比,可以看到RDB持久化更適合保存一個時間點的數據,在主從復制或者數據全量異地災備時,拷貝到其他地方,而AOF持久化由于丟失數據較少,比較適合作為本地備份,在Reids掛掉重啟時作為故障恢復。這就是我理解的為什么Redis需要兩種持久化方式

到此,相信大家對“Redis中的兩種持久化方式是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

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

AI

和静县| 孙吴县| 天水市| 阜新| 于田县| 景洪市| 罗山县| 阿拉善右旗| 台东市| 江孜县| 温州市| 晋州市| 罗山县| 礼泉县| 辉南县| 竹溪县| 西和县| 隆尧县| 华安县| 阳西县| 锦屏县| 丘北县| 临夏市| 固原市| 乾安县| 藁城市| 酉阳| 达孜县| 香格里拉县| 昭通市| 简阳市| 九江市| 柏乡县| 天全县| 永春县| 紫云| 咸丰县| 阿克陶县| 清丰县| 玛沁县| 长宁区|