Redis Redis的持久化(RDB AOP)

2021-07-24 12:25:57 字數 1415 閱讀 2865

由於redis是基於記憶體的資料庫,為了保證資料的可用性,redis提供了兩種資料持久化機制:rdb和aop,下面對這兩種持久化方式加以分析。

執行原理

rdb模式可以在指定的時間間隔內生成記憶體中整個資料集的持久化快照。快照檔案預設被儲存在當前資料夾中,名稱為dump.rdb,可以通過dir和dbfilename引數來修改預設值。

1.redis呼叫fork函式複製當前進行的乙個副本-子程序

2.父程序繼續接收並處理客戶端發來的命令

3.子進行將記憶體中的資料寫入乙個臨時的dump檔案

4.子程序寫入完成後,會用新的臨時dump檔案替換就的rdb檔案

5.一次持久化完成

在執行fork函式的時候,作業系統會使用寫時複製(copy-on-write)策略,也就是說在呼叫fork的一刻,父子進行有相同的記憶體模型,當父程序要修改其中的某片資料時,作業系統會將該片資料複製乙份,從而保證不影響子程序。

rdb檔案是經過壓縮的檔案,占用的空間比較小,更有利於傳輸,並且資料恢復速度也比較快。

rdb模式的優點

1.rdb持久化檔案很緊湊,占用空間更小。

2.rdb儲存的是基於時間點的資料快照,更適合資料的備份和容災

3.利用rdb檔案進行資料恢復時,速度更快

rdb模式的缺點

1.會造成部分資料的丟失

2.當資料集非常大時,fork操作會占用很多系統資源,造成主服務程序假死

rdb模式適用的場景

1.資料備份

2.可容忍部分資料丟失

3.跨資料中心的容災備份

aof持久化 記錄伺服器的所有寫操作,並在伺服器啟動時重新執行這些命令來恢復資料集。aof檔案中的命令全部以redis的協議格式儲存,新命令會追加到檔案的末尾,同時,redis還會在後台對aof檔案進行重寫,使得aof檔案的體積不會過大。

對於觸發aof重寫機制也可以通過配置檔案來進行設定:

auto-aof

-rewrite

-percenttage

=100

auto-aof

-rewrite

-min

-size

64mb

第乙個引數是配置較前乙個aof檔案大小增長的百分比,第二個引數是配置觸發aof重寫的aof的最小的大小。

修改aof的fsync策略:

aof的優點

1.支援不同的fsync策略:no/always/everysec

2.能夠記錄所有寫操作,不會造成資料丟失

3.aof重寫機制確保aof檔案不會過大

4.aof檔案可以很容易的讀懂

aof的缺點

1.雖然有aof重寫機制,單aof檔案通常比rdb檔案大

2.在不同的fsync策略寫,redis效能會受到一定影響

redis持久化 AOF持久化

1.aof持久化原理 aof持久化會將被執行的寫命令寫到aof檔案的末尾。在恢復的時候,redis只要從頭到尾重新執行一次aof檔案包含的所有寫命令 2.配置選項 固態硬碟禁用always選項,在某些情況頻繁讀寫會大大降低固態硬碟的壽命 4.aof檔案的重寫和壓縮 aof檔案裡面記錄了所有的命令而不...

redis持久化之AOF持久化

aof與rdb持久化通過儲存資料庫中的鍵值對來記錄資料庫狀態不同,aof持久化是通過儲存redis伺服器所執行的寫命令來記錄資料庫狀態的。被寫入aof檔案的所有命令都是以redis的命令請求協議格式儲存的。當aof持久化功能處於開啟狀態,伺服器在執行完乙個寫命令之後,會以協議格式將被執行的寫命令追加...

vuex的持久化

首先說一下vuex持久化的工作原理吧,為了再重新整理的時候,保持我們的登入狀態,以及一些重要的檔案,我們需要儲存一些東西在快取裡面 而當我們開發的時候,不知道什麼時候快取什麼值,就會導致各種小bug,一重新整理,找不到了 vuex persistedstate的理念就是把store裡面的資料自動快取...