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

徹底理解Redis持久化

數據庫 其他數據庫 Redis
大家都知道Redis一個內存數據庫,它支持2種持久化方式:RDB(Snapshot 內存快照) ,AOF(append only file)。接下來,本文就介紹這兩種持久化的運行機制和優缺點。

前言

大家都知道Redis一個內存數據庫,它支持2種持久化方式:RDB(Snapshot 內存快照) ,AOF(append only file)。持久化功能將內存中的數據同步到磁盤來避免Redis發生異常導致數據丟失的情況。當Redis實例重啟時,即可利用之前持久化的文件實現數據恢復。

接下來,本文介紹兩種持久化的運行機制和優缺點。

一 RDB

RDB是默認的持久化方式,按照一定的策略周期性的將內存中的數據生成快照保存到磁盤。

每次快照持久化都是將內存數據完整寫入到磁盤一次,并不 是增量的只同步臟數據。如果數據量大的話,而且寫操作比較多,必然會引起大量的磁盤io操作,可能會嚴重影響性能。

1.1 快照持久化過程

1.2 觸發機制

1. save 命令

當客戶端向Redis server發送save命令請求進行持久化時,由于Redis是用一個主線程來處理所有,save命令會阻塞Redis server處理其他客戶端的請求,直到數據同步完成。

2. bgsave命令

與save命令不同,bgsave是異步執行的,當執行bgsave命令之后,Redis主進程會fork 一個子進程將數據保存到rdb文件中,同步完數據之后,對原有文件進行替換,然后通知主進程表示同步完成。

3. 自動觸發

除了手動觸發RDB持久化,Redis內部還存在自動觸發機制,

在配置中集中配置 save m n 的方式,表示 m秒內數據集存在n次修改時,系統自動觸發bgsave 操作。   

  1. # 900s內至少達到一條寫命令  
  2.     save 900 1  
  3.     # 300s內至少達至10條寫命令  
  4.     save 300 10  
  5.     # 60s內至少達到10000條寫命令  
  6.     save 60 10000 

從節點執行全量復制操作,主節點自動執行bgsave 生成RDB文件并發送給從節點

默認情況下執行 shutdown 命令時,如果沒有開啟AOF持久化功能,系統會自動執行bgsave命令。執行debug reload 命令重新加載Redis時,也會自動觸發save操作。

1.3 相關參數   

  1. # 持久化 rdb文件遇到問題時,主進程是否接受寫入,yes 表示停止寫入,如果是no 表示redis繼續提供服務。  
  2.     stop-writes-on-bgsave-error yes  
  3.     # 在進行快照鏡像時,是否進行壓縮。yes:壓縮,但是需要一些cpu的消耗。no:不壓縮,需要更多的磁盤空間。  
  4.     rdbcompression yes  
  5.     # 一個CRC64的校驗就被放在了文件末尾,當存儲或者加載rbd文件的時候會有一個10%左右的性能下降,為了達到性能的最大化,你可以關掉這個配置項。  
  6.     rdbchecksum yes  
  7.     # 快照的文件名  
  8.     dbfilename dump.rdb  
  9.     # 存放快照的目錄  
  10.     dir /var/lib/redis 

1.4 RDB的優缺點

優點

RDB文件小,非常適合定時備份,用于災難恢復。

因為RDB文件中直接存儲的是內存數據,而AOF文件中存儲的是一條條命令,需要應用命令。Redis加載RDB文件的速度比AOF快很多。

缺點

RDB持久化方式不能做到實時/秒級持久化。實時持久化要全量刷內存到磁盤,成本太高。每秒fork子進程也會阻塞主進程,影響性能。

RDB文件是二進制文件,隨著Redis不斷迭代有多個rdb文件的版本,不支持跨版本兼容。老的Redis無法識別新的RDB文件格式。

二 AOF

AOF(Append-only file)針對RDB的缺點做了優化,在使用AOF持久化方式時,Redis會將每一個收到的寫操作命令都通過Write函數追加到文件最后,類似于MySQL的binlog。當Redis重啟時會通過重新執行文件中保存的寫命令來在內存中重建整個數據庫的內容。

2.1 AOF持久化過程

1. 客戶端發出 bgrewriteaof命令。

2. redis主進程fork子進程。

3. 父進程繼續處理client請求,除了把寫命令寫入到原來的aof文件中。同時把收到的寫命令緩存到 AOF重寫緩沖區。這樣就能保證如果子進程重寫失敗的話并不會出問題。

4. 子進程根據內存快照,按照命令合并規則寫入到新AOF文件中。

5. 當子進程把內存快照寫入臨時文件中后,子進程發信號通知父進程。然后父進程把緩存的寫命令也寫入到臨時文件。

6. 現在父進程可以使用臨時文件替換老的aof文件,并重命名,后面收到的寫命令也開始往新的aof文件中追加。

2.2 相關參數   

  1. # 是否開啟AOF,默認關閉  
  2.     appendonly yes  
  3.     # 指定 AOF 文件名  
  4.     appendfilename appendonly.aof  
  5.     # Redis支持三種刷寫模式:  
  6.     # appendfsync always #每次收到寫命令就立即強制寫入磁盤,類似MySQL的sync_binlog=1,是最安全的。但該模式下速度也是最慢的,一般不推薦使用。  
  7.     appendfsync everysec #每秒鐘強制寫入磁盤一次,在性能和持久化方面做平衡,推薦該方式。  
  8.     # appendfsync no     #完全依賴OS的寫入,一般為30秒左右一次,性能最好但是持久化最沒有保證,不推薦。  
  9.     #在日志重寫時,不進行命令追加操作,而只是將其放在緩沖區里,避免與命令的追加造成DISK IO上的沖突。  
  10.     #設置為yes表示rewrite期間對新寫操作不fsync,暫時存在內存中,等rewrite完成后再寫入,默認為no,建議yes  
  11.     no-appendfsync-on-rewrite yes  
  12.     #當前AOF文件大小是上次日志重寫得到AOF文件大小的二倍時,自動啟動新的日志重寫過程。  
  13.     auto-aof-rewrite-percentage 100  
  14.     #當前AOF文件啟動新的日志重寫過程的最小值,避免剛剛啟動Reids時由于文件尺寸較小導致頻繁的重寫。  
  15.     auto-aof-rewrite-min-size 64mb 

2.3 日志重寫

AOF機制將客戶端的每一個寫操作都追加到aof文件末尾,比如將一個key多次執行incr,set命令,會寫入多次命令到aof文件,aof文件會越來越大,部分核心業務每天的寫入量有幾十G的大小。  

  1. incr k1 1  
  2.    set  k2 a  
  3.    set  k2 b  
  4.    incr k1 2  
  5.    incr k1 3 
  6.    set  k2 c  
  7.    del  k3  
  8.    ...  
  9.    incr k1 100 

恢復Redis實例時,加載非常大的aof文件耗時會很長。為了解決這個問題,Redis 支持aof文件重寫--把Redis進程內的數據轉化為寫命令同步到新AOF文件中的過程。通過重寫,可以生成一個最小的命令集合。比如上面的幾個命令可以合并為 

  1. incr k1 100  
  2.   set  k2 c 

寫入數據的規則

1. 進程內過期的數據不用在寫入

2. 舊AOF文件含有的無效命令 del k1, set a 1, set a 2。重寫使用進程內的數據直接生成,aof文件就保留最新的命令集合。

3. 多條命令可以合并為一個命令,為了防止單個命令過大造成客戶端緩沖區溢出,對于list,set,hash,zset 等類型的操作,以64個元素為界拆分為多條。

觸發機制

1. 手動觸發 執行bgrewriteaof命令。

2. 根據配置自動觸發

auto-aof-rewrite-min-size 表示運行AOF重寫是文件最小的大小。默認64M,小于64M就會不自動重寫了。

auto-aof-rewrite-percentage 表示(aof_current_size- aof_base_size) / aof_base_size 的比值。

aof文件重寫之后當前文件大小增長多少就觸發重寫

自動觸發時機 :

aof_current_size>auto-aof-rewrite-min-size 

&& 

(aof_current_size - aof_base_size) /  aof_base_size >= auto-aof-rewrite-percentage

三 RDB VS AOF 對比

具體使用哪種持久化方式 ,下面是來自官方的建議:

通常,如果你要想提供很高的數據保障性,那么建議你同時使用兩種持久化方式。如果你可以接受災難帶來的幾分鐘的數據丟失,那么你可以僅使用RDB。很多用戶僅使用了AOF,但是我們建議,既然RDB可以時不時的給數據做個完整的快照,并且提供更快的重啟,所以最好還是也使用RDB。

生產上的實例大多不會是單點,而是主從,也有利用slave作為持久化方式,同時滿足HA的需求。讀者朋友可以分享一下各自遇到的和 redis 持久化相關的問題。

最后推薦一本書 ,非常適合運維朋友學習。 

 

責任編輯:龐桂玉 來源: 老葉茶館
相關推薦

2024-02-26 00:00:00

Redis持久化AOF

2022-03-01 10:45:38

Redis服務器數據

2023-10-12 13:01:29

Redis數據庫

2018-11-27 09:45:54

2024-03-26 00:03:08

Redis數據RDB

2021-10-04 21:11:18

Redis混合持久化

2020-02-18 16:14:33

RedisRDBAOF

2023-05-11 09:12:35

RedisRDB日志

2024-12-20 12:15:06

RedisRDB持久化

2021-05-13 08:55:33

Android架構功能

2021-07-18 07:59:42

RedisRDBAOF

2021-12-12 10:29:41

AOFRedisAOF日志

2025-01-16 14:03:35

Redis

2023-12-26 07:33:45

Redis持久化COW

2019-11-07 10:37:36

CookieSessionToken

2025-08-28 07:58:18

2019-06-11 14:45:25

2019-01-09 08:31:07

2024-03-15 08:23:26

異步編程函數

2013-09-12 14:56:02

iOS持久化
點贊
收藏

51CTO技術棧公眾號

91免费欧美精品| 亚洲女同一区二区| 国产不卡精品在线| 男男gay免费网站| 日韩中文字幕一区| 2019亚洲日韩新视频| 日韩丝袜情趣美女图片| 亚洲国产高清aⅴ视频| 99综合在线| 国产精品极品在线观看| 最新黄网在线观看| 激情小说激情视频| 日韩一二区视频| 成人www视频在线观看| 久久深夜福利免费观看| 69久久夜色精品国产69蝌蚪网| 欧美国产激情一区二区三区蜜月| 亚洲神马久久| 亚洲区小说区图片区qvod按摩| 欧美办公室脚交xxxx| 欧洲一级在线观看| 99热在线免费播放| 欧美a级免费视频| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 欧美日韩一区二区三区视频播放| 涩涩涩在线视频| 可以在线观看的av| 一插菊花综合| av在线免费观看国产| 久久综合中文色婷婷| 国产成人精品免费视频| 日韩在线播放一区| 欧美精品一区二区三区久久久| 欧美性猛交xxxxx水多| 欧美激情一区二区三区不卡| 三级4级全黄60分钟| www.国产精品一二区| 精品久久久久久久久久久院品网| 欧美日韩免费在线观看| 国产欧美日韩精品a在线观看| 国产美女精品在线| 视频一区二区国产| 黄色成人在线网址| 婷婷成人基地| 日韩一区亚洲二区| 一道在线中文一区二区三区| 欧美区一区二区| 丁香婷婷久久| 日韩和的一区二在线| 国产在线天堂www网在线观看| 黄色免费在线看| 第一页在线观看| 免费a在线观看| 亚洲欧美日本免费| 蜜臀一区二区三区| 22288色视频在线观看| 99re99| 久久这里只精品| 男人天堂成人在线| 久久精品香蕉视频| 看av免费毛片手机播放| 亚洲理论电影在线观看| 超薄肉色丝袜足j调教99| 一级做a爰片久久| 亚洲巨乳在线观看| 一本一道久久a久久综合精品| 亚洲精品一区二区三区四区五区 | 国产精品久一| 精品中文字幕一区二区三区| 婷婷丁香久久| 999久久久国产999久久久| 粉嫩91精品久久久久久久99蜜桃| 一根才成人网| 亚洲a∨精品一区二区三区导航| av日韩中文| 欧美粗大gay| 日韩三区四区| 精品国产亚洲日本| 精品亚洲自拍| 九九亚洲精品| 外国成人激情视频| 欧美成人久久| av成人国产| 久久一区国产| 蜜臀av性久久久久蜜臀aⅴ四虎| 精品综合免费视频观看| 成人精品视频一区二区三区尤物| www.欧美色图| 欧美经典一区二区三区| 国产精品理伦片| 亚洲国产视频网站| 在线日韩国产精品| 日韩午夜激情电影| 精品偷拍一区二区三区在线看| 亚洲网站视频福利| 欧美激情videos| 国产精品成人av在线| 999视频在线免费观看| 激情视频一区二区| 中国 免费 av| 欧美日韩在线成人| 蜜桃av成人| 日韩女优毛片在线| 一区二区三区色| 欧美日韩国产在线看| 欧美日韩一区在线观看| 欧美va在线播放| 在线播放国产精品| 亚洲91精品在线| 国产日韩精品电影| 久久精品日产第一区二区三区精品版| 亚洲国产日韩综合一区| 欧美老熟妇喷水| 日本最黄视频| 91av资源在线| 在线精品亚洲欧美日韩国产| 亚洲精品在线a| 午夜免费一区| 精品在线播放免费| 国产精品欧美一区喷水| 91国产成人在线| 国产手机视频精品| 91国内在线视频| 国产一区二区三区色淫影院| www.日本三级| 激情视频网址| 免费黄色电影在线观看| 99久久伊人| 日韩久久视频| 天堂影院一区二区| 久久久午夜精品理论片中文字幕| 亚洲一级在线观看| 日韩欧美第一区| 欧美激情第6页| 国产伦精品一区二区三区照片| 大荫蒂性生交片| 亚洲永久精品免费| 成人激情免费在线| 中文字幕视频在线免费欧美日韩综合在线看 | 国产盗摄在线观看| 四虎国产精品免费久久| 日韩精品永久网址| 国内精品自线一区二区三区视频| 中文文精品字幕一区二区| 欧美日韩电影在线| 久久精品国产69国产精品亚洲| 国产在线不卡精品| 色一情一乱一乱一区91| 天天干狠狠干| 亚洲欧美小说色综合小说一区| 日韩av影院| 美腿丝袜亚洲色图| 一区二区三区精密机械公司| 亚洲精品久久久久久下一站 | 丝袜美腿精品国产二区| 国产精品日韩在线| 50度灰在线观看| 日韩国产福利| 欧美成人福利| 亚洲二区在线| 国产视频一区不卡| 欧美一区二区三区视频在线 | 欧美成人艳星乳罩| 亲子乱一区二区三区电影 | 精品99视频| 久久久91精品国产一区二区精品 | 91精品国产一区| 久久精品中文字幕一区二区三区| 无码av天堂一区二区三区| 中文字幕在线播放第一页| 欧美成人精品一区二区男人小说| 亚洲精品97| 国产视频一区二区三区在线观看| 欧美一二三区在线观看| 日本久久久久久久| 在线观看亚洲视频啊啊啊啊| 在线观看av每日更新免费| 国产一区二区色噜噜| 日韩一级网站| 伊人夜夜躁av伊人久久| 国产亚洲xxx| 久久精品二区| 欧美日夜夜逼| 欧美影视资讯| 性感少妇一区| 午夜影院久久久| 欧美精品在线视频观看| 色播亚洲婷婷| 亚洲第一成年免费网站| 麻豆精品久久| 精品一区精品二区高清| 欧美自拍丝袜亚洲| 4p变态网欧美系列| 韩日视频在线观看| 天堂av最新在线| 欧美a级一区| 亚洲午夜在线视频| 欧美激情视频给我| 国产91沈先生在线播放| 青青青草视频在线|