3、redis.conf中的持久化相關(guān)配置

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

創(chuàng)新互聯(lián)公司是一家專注于做網(wǎng)站、成都網(wǎng)站設(shè)計與策劃設(shè)計,齊河網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:齊河等地區(qū)。齊河做網(wǎng)站價格咨詢:18982081108

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

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

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

本文題目:3、redis.conf中的持久化相關(guān)配置
網(wǎng)址分享:http://muchs.cn/article46/ghjehg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、小程序開發(fā)、做網(wǎng)站、軟件開發(fā)、網(wǎng)站內(nèi)鏈、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)