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

溫馨提示×

溫馨提示×

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

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

3、redis.conf中的持久化相關配置

發布時間:2020-08-02 23:38:15 來源:網絡 閱讀:660 作者:張創_ 欄目:數據庫

  Redis支持2種持久化策略:snapshot方式和commandlog方式,前者通過將當前內存數據快照周期性寫入RDB文件來實現;后者通過在log中記錄Redis進程收到的寫操作來實現,下次Redis重啟時,回放commandlog來恢復數據狀態。
        根據實際需求,用戶可以選擇完全禁用持久化,也可以在同一個Redis實例中同時啟用RDB和AOF。
        特別注意:如果部署方式為主從,則不同實例的持久化時機最好錯開!避免master和slaves同時進入后臺持久化,這可能會降低系統的性能。

1. RDB相關配置
        1) databases
        配置db文件的數目,可以用select <dbid>指令為每個連接指定后續持久化時的db文件,新連接默認均使用db 0
        2) save
        SNAPSHOTTING的持久化方式有多種save策略可供選擇,而且支持混用,例如:
          save 900 1
          save 300 100
          save 60  10000
        上述配置的效果是:snapshotting會在3個條件中的任何一個滿足時被觸發:a. 900s內至少1個key有變化;b. 300s內至少100個key有變化;c. 60s內至少有10000個key有變化
        save條件被觸發時,Redis通過fork子進程,由子進程在后臺實現異步dump磁盤。根據fork的寫時復制策略,若持久化過程中出現很多寫入請求,在最壞的情況下,需要的內存是當前數據集所占內存的2倍。
        備注1:上述配置的3個觸發條件其實是逐次加強的,哪個條件先滿足就先觸發那個save策略。
        備注2:如果業務不需要持久化或不需要RDB方式的持久化,可以通過注釋掉save配置項來實現
        3) stop-writes-on-bgsave-error
        指定Redis在后臺dump磁盤出錯時的行為,默認為yes,表示若后臺dump出錯,則RedisServer拒絕新的寫入請求,通過這種方式來引起用戶警覺,避免因用戶未發現異常而引起更大的事故。
        4) rdbcompression
        RDB文件是否壓縮存儲,若為yes,會在壓縮時消耗一點CPU,但省磁盤空間。
        5) rdbchecksum
        RDB文件是否需要CRC64校驗, 若為yes,會在生成RDB文件后計算其CRC64并將結果追加至文件尾,同樣,Redis啟動Load RDB時,也會先計算該文件的CRC64并與dump時的計算結果對比。
        好處:可以嚴格保證RDB的完整性及安全性
        代價:會在dump或load時損失10%的性能。如果要最大化Redis的性能,這個配置項應該用no關掉
        6) dbfilename
        指定RDB文件名,默認為dump.rdb 
        7) dir
        指定RDB文件存放目錄的路徑,若包含多級路徑,則相關父路徑需事先mkdir出來,否則啟動失敗。

2. AOF相關配置
        默認情況下,Redis以寫RDB文件的方式持久化數據(除非用戶主動禁用RDB方式的持久化)。若Redis進程掛掉或機器掉電,則上次save完成時刻至故障時刻這段時間內的新數據會丟失。AOF的引入可以將數據損失的程度減少到1秒或1條寫入指令。
        1) appendonly
        配置是否啟用AOF持久化,默認為no
        2) appendfilename
        指定aof文件名,默認為appendonly.aof 
        3) appendfsync
        配置aof文件的同步方式,Redis支持3種方式:
         a. no => redis不主動調用fsync,何時刷盤由OS來調度;
         b. always => redis針對每個寫入命令均會主動調用fsync刷磁盤;
         c. everysec => 每秒調一次fsync刷盤。
        用戶可以根據業務對數據的敏感性選擇合適的同步策略。
        4) no-appendfsync-on-rewrite
        指定是否在后臺aof文件rewrite期間調用fsync,默認為no,表示要調用fsync(無論后臺是否有子進程在刷盤)。備注:Redis在后臺寫RDB文件或重寫afo文件期間會存在大量磁盤IO,此時,在某些linux系統中,調用fsync可能會阻塞。
        5) auto-aof-rewrite-percentage
        指定Redis重寫aof文件的條件,默認為100,表示與上次rewrite的aof文件大小相比,當前aof文件增長量超過上次afo文件大小的100%時,就會觸發background rewrite。若配置為0,則會禁用自動rewrite。
        6) auto-aof-rewrite-min-size
        指定觸發rewrite的aof文件大小。若aof文件小于該值,即使當前文件的增量比例達到auto-aof-rewrite-percentage的配置值,也不會觸發自動rewrite。即這兩個配置項同時滿足時,才會觸發rewrite。

3. 需要明確的問題
        1)若同時啟用RDB和AFO兩種持久化方式,則Redis Server啟動時,會加載AOF文件以重建數據集,因為AOF可以保證數據是相對最完整的。
        2)關于RDB和AOF各自的優缺點以及用戶如何選擇合適的持久化策略,可以參考這里
        3)簡言之,若可以忍受數據丟失,只啟用RDB即可;若對數據很敏感,可以同時啟用RDB和AOF;不建議只啟用AOF(注釋配置文件的save配置項或通過redis-cli執行save ""),因為一旦如果AOF文件損壞或AOF解析引擎存在bug,整個數據集都無法重建。


向AI問一下細節

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

AI

英超| 新干县| 汪清县| 鸡泽县| 韶关市| 龙胜| 汶上县| 祥云县| 洛川县| 布尔津县| 西乡县| 米林县| 望谟县| 宜黄县| 临安市| 民勤县| 射洪县| 大港区| 商丘市| 永济市| 绥宁县| 海城市| 凤山县| 波密县| 泾源县| 黑山县| 郎溪县| 潜江市| 贵阳市| 页游| 都安| 阳城县| 文安县| 莲花县| 巴彦淖尔市| 青神县| 南京市| 辽源市| 灵丘县| 台中市| 苍梧县|